JSF参数传递方式之一:f:param标签
页面到Bean的参数传递
页面中设置参数:
Java代码 收藏代码
<h:form>
<h:commandLink value="Test2" action="#{paramBean.test}">
<f:param name="name" value="zhang"></f:param>
<f:param name="id" value="123456"></f:param>
</h:commandLink>
</h:form>
注意:这里只能使用h:commandLink标签,而不能使用h:commandButton标签!
后台取参数:
(1) 通过Request对象取值
Java代码 收藏代码
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getParameter("name");
(2)通过RequestParameterMap取值
Java代码 收藏代码
Map varMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
varMap.get("id");
(3)通过配置文件进行Bean的属性值注入,在Bean的方法中直接使用属性
Xml代码 收藏代码
<managed-bean>
<managed-bean-name>paramBean</managed-bean-name>
<managed-bean-class>com.spg.bean.ParamBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>id</property-name>
<property-class>java.lang.String</property-class>
<value>#{param.id} </value>
</managed-property>
</managed-bean>
页面到页面的参数传递
页面中设置参数:
(1)
Html代码 收藏代码
<h:outputLink value="param2.jsf">
<h:outputText value="Test4"></h:outputText>
<f:param name="name" value="chen"></f:param>
<f:param name="id" value="123456"></f:param>
</h:outputLink>
(2)
Html代码 收藏代码
<h:outputLink value="param2.jsf?name=chen&id=123456">
<h:outputText value="Test4"></h:outputText>
</h:outputLink>
注意:以上两种方法,不能同时使用!
页面中取参数:
(1) 使用JSF的值表达式
Html代码 收藏代码
<h:outputText value="#{param.name}"></h:outputText>
<h:outputText value="#{param.id}"></h:outputText>
(2) 使用JSP的表达式
Html代码 收藏代码
<%=request.getParameter("name")%>
<%=request.getParameter("id")%>
JSF参数传递方式之二:Backing Bean 与 h:inputHidden标签
Java代码 收藏代码
Backing Bean
import javax.faces.component.UIInput;
import javax.faces.component.UIOutput;
public class BackingBean
{
private UIOutput idComponent;
public UIOutput getIdComponent()
{
return idComponent;
}
public void setIdComponent(UIOutput idComponent)
{
this.idComponent = idComponent;
}
}
页面到Bean的参数传递
页面中设置参数:
Html代码 收藏代码
<h:form>
<h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden>
<h:commandButton value="登录" action="#{paramBean.login}"></h:commandButton>
</h:form>
后台取参数:
Java代码 收藏代码
FacesContext context = FacesContext.getCurrentInstance();
BackingBean backBean =(BackingBean)context.getApplication().getVariableResolver().resolveVariable(context,"backingBean");//该方法已经过时
BackingBean bean =(BackingBean)context.getApplication().getELResolver().getValue(context.getELContext(), null, "backingBean");
backBean.getIdComponent().getValue();
bean.getIdComponent().getValue();
FacesContext context = FacesContext.getCurrentInstance();
2.2页面到页面的参数传递
页面中设置参数:
Html代码 收藏代码
<h:form>
<h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden>
<h:commandButton value="Test5" action="param"></h:commandButton>
<h:commandLink value="Test6" action="param"></h:commandLink>
</h:form>
注意:h:outputLink 标签不能使用该方式传递参数!
页面中取参数:
Html代码 收藏代码
<h:outputText value="#{backingBean.idComponent.value}"></h:outputText>
JSF参数传递方式之三:通过session(application)对象传递
页面到Bean的参数传递
页面中设置参数:
Html代码 收藏代码
<h:form>
<%session.setAttribute("name","hujilie"); %>
<%application.setAttribute("id","123456"); %>
<h:commandButton value="Test8" action="#{paramBean.test2}"></h:commandButton>
<h:commandLink value="Test8" action="#{paramBean.test2}"></h:commandLink>
</h:form>
后台取参数:
Java代码 收藏代码
FacesContext context = FacesContext.getCurrentInstance();
Map sessionMap =context.getExternalContext().getSessionMap();
Map applicationMap = context.getExternalContext().getApplicationMap();
HttpSession session =(HttpSession) context.getExternalContext().getSession(true);
ServletContext application = (ServletContext)context.getExternalContext().getContext();
sessionMap.get("name");
applicationMap.get("id");
session.getAttribute("name");
application.getAttribute("id");
页面到页面的参数传递
页面中设置参数:
Html代码 收藏代码
<h:form>
<%session.setAttribute("name","hujilie"); %>
<%application.setAttribute("id","123456"); %>
<h:outputLink value="param2.jsf">Test10</h:outputLink>
</h:form>
页面中取参数:
Html代码 收藏代码
<h:outputText value="#{sessionScope.name}"></h:outputText><br>
<h:outputText value="#{applicationScope.id}"></h:outputText>
JSF参数传递方式之四:f:attribute标签传递
页面到Bean的参数传递
页面中设置参数:
Html代码 收藏代码
<h:form>
<h:commandButton action="#{paramBean.test3}" value="Test11" actionListener="#{paramBean.changeName}">
<f:attribute name="name" value="hujilie"/>
</h:commandButton>
<h:commandLink action="#{paramBean.test3}" value="Test12" actionListener="#{paramBean.changeName}">
<f:attribute name="name" value="hujilie"/>
</h:commandLink>
</h:form>
后台取参数:
Java代码 收藏代码
public void changeName(ActionEvent e)
{
UIComponent component = e.getComponent();
Map<String, Object> map = component.getAttributes();
setName((String)map.get("name"));
}
JSF参数传递方式之五:f:setPropertyActionListener 标签传递
页面到Bean的参数传递
页面中设置参数:
Html代码 收藏代码
<h:form>
<h:commandButton action="#{paramBean.test3}" value="Test14">
<f:setPropertyActionListener value="hujilie" target="#{paramBean.name}"/>
</h:commandButton>
<h:commandLink action="#{paramBean.test3}" value="Test15">
<f:setPropertyActionListener value="hujilie" target="#{paramBean.name}"/>
</h:commandLink>
</h:form>
后台取参数:直接使用属性的值。
分享到:
相关推荐
jsf的中文教程chm版的和讲解jsf中使用到的一些参数的传递方式,学习jsf很不错的材料……
jsf传递参数jsf传递参数jsf传递参数jsf传递参数!可以参考学习!
由于backing bean添加了一个属性:myParam,这样...这里用一般的JSF模型:前台的jsp跟只引用一个backing bean,这样jsp提交后,backing bean才能restore。显然这种方式比较麻烦,容易出现不能初始化managed-bean的异常。
主要讲述JSF的工作方式 JSF的工作方式 JSF架构 JSF模型 JSF事件类型
jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF
jsf 分页 jsf 分页 jsf 分页 jsf 分页
引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统界面的方式来开发Web应用程序。提供了行为与表达的清晰分离。 不用特别的脚本语言或者标记语言来连接UI组件和Web层。JSF技术API被直接分层...
JSF中文教程JSF中文教程JSF中文教程JSF中文教程
《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF...
JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍JSF开发介绍
jsf1.2 core jsf jsf核心
第一个JSF程序,初学JSF者必备,jsf架包 jsf实例
jsf 视频 java faces jsf 视频 java faces jsf 视频 java faces
JSF入门教程 JSF入门教程 JSF入门教程
jsf 文档 jsf 文档 jsf 文档 jsf 文档
jsf 中文文档jsf 中文文档jsf 中文文档jsf 中文文档
================================= JSF开发必备JAR ================================= <br>《JSF入门简单中文版》开篇提到JSF开发需要的jar,' 但是按其中提供的方法: <br>jstl.jar 与 ...
jsf2.0新特性及richface优化总结.....是这两天查资料的总结
精通JSF中文教程精通JSF中文教程精通JSF中文教程精通JSF中文教程精通JSF中文教程精通JSF中文教程
这里是jsf的tags的书籍。主要讲述jsf的用法。