日期:2014-05-16  浏览次数:20336 次

JSF2.0笔记

1. Get ContextPath in JSF

In jsp/jsf/html file you can get contextpath using:
?? #{facesContext.externalContext.requestContextPath}
And in bean you can get context path using:
?? FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath()

?

NOTE :Most of the JSF components are fully aware of their context paths, so you don't need to explicitly include them. I know that the graphicImage tag is one of them. So you're actually being more clever than you need to be.

?

We can get remote address and port if you have HttpServletRequest object something like below:
?? ((HttpServletRequest ) FacesContext.getCurrentInstance().getExternalContext().getRequest()).getRemoteAddr() ;
?? ((HttpServletRequest ) FacesContext.getCurrentInstance().getExternalContext().getRequest()).getRemoteHost() ;
?? ((HttpServletRequest ) FacesContext.getCurrentInstance().getExternalContext().getRequest()).getRemotePort();

?

2. URL 传递参数到 JSF 程序中

如果你有下面的URL:?http://your_server/your_app/product.jsf?id=777,? 你可以使用下面的代码来访问所传递的参数 :???

FacesContext?fc?=?FacesContext.getCurrentInstance();
?String?id?=?(String)?fc.getExternalContext().getRequestParameterMap().get("id");

?

JSF 页面上 , 你也可以使用预定义的变量 param 访问同样的参数 , 例如 :??

? <h:outputText?value="#{param ['id']}"?/>

?

3. Managed?Bean 中调用另一个 Managed?Bean

FacesContext?facesContext?=?FacesContext.getCurrentInstance();
TestHandler?ush?=?(TestHandler)?facesContext.getApplication().getVariableResolver().resolveVariable(facesContext,??? "testHandler");

?

?

4. Maven开发使用jetty插件 部署JSF2.0的问题:

mvn jetty:run? jetty中使用jetty测试JSF2.0存在问题: Managed Bean中@ManagedBe