如何在JSP中使用view-params?

时间:2013-11-12 13:17:34

标签: jsp jsf jsf-2 viewparams

我想使用视图参数来获取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)。

1 个答案:

答案 0 :(得分:2)

这是不可能的。自从2009年12月的JSF 2.0(差不多4年前已经!)以来,JSP是deprecated。所有新的JSF 2.x特定标记仅适用于Facelets,而不适用于JSP。基本上,使用JSP,您只能使用JSF 1.x特定标记。换句话说,JSF 2.x标记<f:metadata><f:viewParam><f:ajax><h:head><h:outputScript>可用于JSP。

使用已弃用的技术毫无意义。现在是migrate的时候了。