我知道如何创建 JSF 2.0 servlet,也知道如何创建 portlet,但是我在结合这两种技术时遇到了问题。我的 JSF portlet 运行良好,直到我必须通过<h:commandLink />
. 当我单击这些链接时,当前页面会重新加载,并且不会调用任何方法。我认为我的应用程序需要一些额外的配置。为了使这样的命令链接正常工作需要做什么:
<h:commandLink action="#{backingBean.doSomething}" />
请注意,我正在使用一个 WebSphere 8 门户服务器,它提供了一个 JSF 2.0 portlet 桥。
编辑
我在这里看到一个基本的冲突:
- portlet API 负责生成 URL - 生成有效的门户 URL
- JSF 负责生成 URL - 生成有效的 JSF-URL
我的托管 bean 是使用注释配置的:
@ManagedBean(name = "backingBean")
@ViewScoped
public class entryEditController
{
public String doSomething()
{
return "result.xhtml";
}
}
这是我的 faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<view-handler>com.ibm.faces20.portlet.FaceletPortletViewHandler</view-handler>
<el-resolver>com.ibm.faces20.portlet.PortletELResolver</el-resolver>
<resource-handler>com.ibm.faces20.portlet.httpbridge.PortletResourceHandler</resource-handler>
</application>
</faces-config>