【发布时间】:2014-09-07 19:26:36
【问题描述】:
我正在将 NetBeans 用于 Java EE 中的 Web 应用程序。
我有一个用于缺勤实体类 (absenceController) 的控制器和一个用于员工实体类 (employeeController) 的控制器。
我可以通过缺席控制器控制的任何页面进入员工创建页面:
<h:commandLink action="#{absenceController.prepareCreate}"
value="#{bundle.ListAbsenceCreateLink}"/>
我可以通过employeeController控制的任何页面进入缺勤创建页面:
<h:commandLink action="#{employeeController.prepareCreate}"
value="#{bundle.ViewEmployeeCreateLink}" />
当我想设置一个新的缺勤实例时,我需要提前设置员工,因此我尝试从员工视图页面(称为 Tasks.xhtml)访问缺勤创建页面,将员工实例发送为一个参数。
在 MVC .NET 中,我会使用 Html.ActionLink,有点像这样:
Html.ActionLink("Report Absence for employee"
, "Create"
, "Absence"
, new { employeeid = employee.Id } // <- I would only be able to send the id
, null)
在 Java 中,这是我得到的最接近的:
<h:commandLink action="/absence/create"
value="#{bundle.TasksEmployeeCreateAbsenceLink}" >
<f:setPropertyActionListener target="#{absenceController.selected.employee}"
value="#{employeeController.selected}" />
</h:commandLink>
文件夹结构如下图:
我知道动作标签不正确,但是有什么方法可以改变它以获得想要的结果吗?
【问题讨论】:
-
必须是 GET 还是 POST 请求?你考虑过这种请求的幂等性吗?
-
这将是一个 GET。如果我误解了幂等性,我很抱歉 - 可以多次致电,因为员工可能有很多缺勤。
标签: asp.net-mvc jsf netbeans html.actionlink