我想通过JSF 2使用视图参数来获取可添加书签的URL,但是我使用JSP,并且可以找到的所有帮助和示例都使用facelets。到目前为止,我想做的是:
search.jsp(调用页面):
<t:commandLink action="..."> <f:param name="param1" value="foo"/> <h:outputText value="..."/> </t:commandLink>
faces-config.xml:
<navigation-rule> <navigation-case> <from-outcome>go_edit</from-outcome> <to-view-id>/views/edit.jsp</to-view-id> <redirect> <view-param> <name>param1</name> <value>#{edit.param1}</value> </view-param> </redirect> </navigation-case> </navigation-rule>
Edit.java(编辑页面支持bean):
public class Edit extends ... { private String param1; public String getParam1(){ return param1; } public void setParam1(String param1){ this.param1 = param1; } ... }
我认为问题是,我没有将视图参数添加到编辑页面(例如edit.jsp)。我只发现了facelet示例,如下所示:
<f:metadata> <f:viewParam name="id" value="#{bean.id}" /> </f:metadata>
我的问题是,我可以使用JSP视图参数吗?有人可以提供或指出我一个完整的例子吗?尤其是带有目标页面的部分(例如edit.jsp)。
这是不可能的。自2009年12月(近4年前!)以来,就不推荐使用 JSP 2.0。所有新的JSF 2.x特定标签仅可用于Facelets,不适用于JSP。基本上,使用JSP时,只有特定于JSF 1.x的标签可用。换句话说,在JSF 2.x的标签<f:metadata>,<f:viewParam>,<f:ajax>,<h:head>,<h:outputScript>,等是 没有 提供给JSP。
<f:metadata>
<f:viewParam>
<f:ajax>
<h:head>
<h:outputScript>
使用过时的技术毫无意义。现在是迁移的时候了。