JSF参数传递方式之一:f:param标签
页面到Bean的参数传递
页面中设置参数:
注意:这里只能使用h:commandLink标签,而不能使用h:commandButton标签!
后台取参数:
(1) 通过Request对象取值
(2)通过RequestParameterMap取值
(3)通过配置文件进行Bean的属性值注入,在Bean的方法中直接使用属性
页面到页面的参数传递
页面中设置参数:
(1)
(2)
注意:以上两种方法,不能同时使用!
页面中取参数:
(1) 使用JSF的值表达式
(2) 使用JSP的表达式
页面中设置参数:
- <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: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对象取值
- HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
- request.getParameter("name");
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getParameter("name");
(2)通过RequestParameterMap取值
- Map varMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
- varMap.get("id");
Map varMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
varMap.get("id");
(3)通过配置文件进行Bean的属性值注入,在Bean的方法中直接使用属性
- <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>
<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)
- <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>
<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)
- <h:outputLink value="param2.jsf?name=chen&id=123456">
- <h:outputText value="Test4"></h:outputText>
- </h:outputLink>
<h:outputLink value="param2.jsf?name=chen&id=123456">
<h:outputText value="Test4"></h:outputText>
</h:outputLink>
注意:以上两种方法,不能同时使用!
页面中取参数:
(1) 使用JSF的值表达式
- <h:outputText value="#{param.name}"></h:outputText>
- <h:outputText value="#{param.id}"></h:outputText>
<h:outputText value="#{param.name}"></h:outputText>
<h:outputText value="#{param.id}"></h:outputText>
(2) 使用JSP的表达式
- <%=request.getParameter("name")%>
- <%=request.getParameter("id")%>