JSF书签问题
我有一个显示员工数据的h:datatable。 我希望用户在单击员工姓名时导航到URL类似的新页面JSF书签问题,jsf,Jsf,我有一个显示员工数据的h:datatable。 我希望用户在单击员工姓名时导航到URL类似的新页面 employees?id=<some id> 员工身份证= 我尝试将jspel与jsfel结合起来,但没有出路 我可以想到两种可能的解决方案: 使用JSF2(JavaEE6的一部分) 如果您在JSF1.x中陷入困境,请使用 如果可以切换到JavaEE6服务器,我强烈推荐选项1 编辑:JSF2中添加了两个标记:和。这些使用GET而不是POST。另外,查看。除此之外,JSF2中还有许多
employees?id=<some id>
员工身份证=
我尝试将jspel与jsfel结合起来,但没有出路 我可以想到两种可能的解决方案:
编辑:JSF2中添加了两个标记:
和
。这些使用GET而不是POST。另外,查看
。除此之外,JSF2中还有许多其他精彩的添加。有关简要概述,请参见。如果您还没有使用JSF2.0,那么您可以将h:outputLink
与
、{param}
和faces config.xml
结合使用
基本表格示例:
<h:dataTable value="#{bean.employees}" var="employee">
<h:column>
<h:outputLink value="employees.jsf">
<f:param name="id" value="#{employee.id}" />
<h:outputText value="View employee #{employee.name}" />
</h:outputLink>
</h:column>
</h:dataTable>
基本com.example.EmployeeManager
示例:
<managed-bean>
<managed-bean-name>employeeManager</managed-bean-name>
<managed-bean-class>com.example.EmployeeManager</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>id</property-name>
<value>#{param.id}</value>
</managed-property>
</managed-bean>
public class EmployeeManager {
private Long id;
private Employee employee;
@PostConstruct
public void init() {
this.employee = employeeDAO.find(this.id);
}
}
@PostConstuct
带注释的方法将在bean构造以及所有注入和托管属性设置之后调用。另请参阅以获取更多信息和示例。那么,使用JSF2是否可以解决此问题,因为我担心在切换到仍然面临此问题之后?您不一定需要JSF2来解决此问题。这毫无意义。你不需要JSF2来实现这一点。您可以修改视图处理程序以接受查询参数。然而,这是一种令人讨厌的方法。您还可以使用输出链接。但是,这绕过了JSF导航。您的博客看起来很棒,谢谢:)是的,您对@PostConstruct的提示是正确的,我已经重新定义了这个注释(并在我的博客中列出了它),但这里有一个问题,如果我需要使用h:outputlink将employee对象放在会话范围内怎么办?只需将EmployeeManager
设置为会话范围的bean。