是否可以将参数从JSP页面传递到JSF页面的辅助bean?
当我调用JSF页面中的一个按钮和我在JSP页面中选择的值时,JSP页面弹出窗口打开,我应该能够传递给JSF的支持bean。P.S。当我添加评论时,当有人回复时我放了@anyname,@ Namyname部分被截断了。
更新1
为了从JSP到bean获取所选值,我做了一个粗略的方法。
我在JSP
中添加了以下内容String str = request.getParameter("selectname");
并将字符串str分配给隐藏字段
<input type="hidden" name="hid" value="<%=str%>" />
在我的bean中,我得到的值如下
logger.info("jsp value "+FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("hid"));
这几乎可以工作,除了我总是得到我之前选择的值。 例如。第一次当我选择1并且bean中返回的值为null时,第二次当我选择2时,返回的值为1.
如何在我的bean中获取当前选定的值?
答案 0 :(得分:2)
首先,如果您的JSF视图技术是JSP,那么您可以使用jsp中的<h:>
标记,它变得简单0只需添加<h:commandButton action="#{yourBean.yourMethod}" />
否则,您仍然可以,但我建议您将弹出窗口设置为JSF页面。 JSF和JSP不能很好地共存。如果你真的必须保留这种情况,那么你可以尝试模拟对目标jsf URL的JSF POST请求。
答案 1 :(得分:1)
f:viewParam
允许您关联bean
带请求参数的属性
-
- 这引入了几项新功能
<f:viewParam name="fg" value="#{colorPreferences.foreground}" />
如果“fg”参数为非null,则传递给它 在呈现页面之前的setForeground
<f:metadata>
<f:viewParam name="param1" value="#{bean.prop1}"/>
<f:viewParam name="param2" value="#{bean.prop2}"/>
</f:metadata>
<h:head>…</h:head>
<h:body>
Blah Blah blah #{bean prop1} , blah, #{bean.prop1}
</h:body>
如果使用page.jsp?param1=foo¶m2=bar
调用该页面,则“foo”和“bar”会传递给“setProp1”在呈现页面之前使用“setProp2”。如果任何参数为null(即,不存在此类请求参数),则根本不调用关联的setter,并且bean具有该属性的正常值