我有两个相关的struts jsp文件。 我是新手,有点困惑。
在#1中,对于td,这些值来自哪里,我的意思是名字,姓氏,部门名称?是那些来自java动作或hibernate类的字段?
在#2,第10行,什么是员工? employee.employee.id和#2代码底部的一样吗?另外,在s:select中,是某个类的departmentID和名称吗?
非常感谢你的帮助......
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<link href="<s:url value="/resources/main.css"/>" rel="stylesheet" type="text/css"/>
<title><s:text name="label.employees"/></title>
</head>
<body>
<div class="titleDiv"><s:text name="application.title"/></div>
<h1><s:text name="label.employees"/></h1>
<table width=600 align=center>
<tr> <s:url id="insert" action="setUpForInsertOrUpdate"/>
<td><s:a href="%{insert}">Click Here to Add New Employee</s:a></td>
</tr>
</table><br/>
<table align=center class="borderAll">
<tr>
<th><s:text name="label.firstName"/></th>
<th><s:text name="label.lastName"/></th>
<th><s:text name="label.age"/></th>
<th><s:text name="label.department"/></th>
<th> </th>
</tr>
<s:iterator value="employees" status="status">
<tr class="<s:if test="#status.even">even</s:if><s:else>odd</s:else>">
<td class="nowrap"><s:property value="firstName"/></td>
<td class="nowrap"><s:property value="lastName"/></td>
<td class="nowrap"><s:property value="age"/></td>
<td class="nowrap"><s:property value="department.name"/></td>
<td class="nowrap"><s:url id="update" action="setUpForInsertOrUpdate">
<s:param name="employee.employeeId" value="employeeId"/>
</s:url> <s:a href="%{update}">Edit</s:a>
<s:url id="delete" action="delete">
<s:param name="employee.employeeId" value="employeeId"/>
</s:url> <s:a href="%{delete}">Delete</s:a>
</td>
</tr>
</s:iterator>
</table>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<link href="<s:url value="/resources/main.css"/>" rel="stylesheet" type="text/css"/>
</head>
<body>
<center>
<div class="titleDiv"><s:text name="application.title"/></div>
<h1><s:if test="employee==null || employee.employeeId == null">
<s:text name="label.employee.add"/>
</s:if>
<s:else>
<s:text name="label.employee.edit"/>
</s:else></h1>
<table width=600 align=center>
<tr><td><a href="getAllEmployees.action">Click Here to View Employees</a></td>
</tr>
</table>
<table>
<tr><td align="left" style="font:bold;color:red">
<s:fielderror/>
<s:actionerror/>
<s:actionmessage/></td></tr>
</table>
<s:form>
<table align="center" class="borderAll">
<tr><td class="tdLabel"><s:text name="label.firstName"/></td>
<td><s:textfield name="employee.firstName" size="30"/></td>
</tr>
<tr>
<td class="tdLabel"><s:text name="label.lastName"/></td>
<td><s:textfield name="employee.lastName" size="30"/></td>
</tr>
<tr><td class="tdLabel"><s:text name="label.age"/></td>
<td><s:textfield name="employee.age" size="20"/></td>
</tr>
<tr>
<td class="tdLabel"><s:text name="label.department"/></td>
<td><s:select name="employee.department.departmentId"
list="#session.departments"
listKey="departmentId"
listValue="name"
/>
</td>
<s:hidden name="employee.employeeId"/>
</tr>
</table>
<table>
<tr>
<td><s:submit action="insertOrUpdate" key="button.label.submit" cssClass="butStnd"/></td>
<td><s:reset key="button.label.cancel" cssClass="butStnd"/></td>
<tr>
</table>
</s:form>
</center>
</body>
</html>
答案 0 :(得分:1)
<context-param>
<param-name></param-name>
<param-value>(specify the application resource file path)</param-value>
</context-param>
这个文件包含你的jsp pages中使用了哪些键的键值对。在那个文件中搜索这些label.firstname,label.lastname,你将得到整个情况。
答案 1 :(得分:0)
回答你的问题:
没有。 1. label.firstName
可以从Struts维护的任何值堆栈中检索。这可以来自消息资源,也可以来自转发到jsp的动作类的属性。有关更多信息,请参阅以下文档:
http://struts.apache.org/2.2.3/docs/tag-syntax.html
没有。 2. employee.employeeId
可以引用Action中转发此jsp的employee
变量集。如果您看到转发此jsp的Action类,那么您将使用private Employee employee;
以及在对象外共享此变量的setEmployee(Employee employee)
和getEmployee()
方法。如果您看到Employee类声明,您将看到employeeId作为变量。 struts标签使用getter方法访问此变量。这里是getEmployeeId()
。我建议您参考下面的链接,查看可以在Struts2中使用的完整标签及其用法:
http://struts.apache.org/2.2.3/docs/tag-reference.html
在第二个jsp的s:select
中,发生#session.departments
上的迭代。这里departments
可以是迭代发生的Department bean列表。此列表也在会话范围内。 name="employee.department.departmentId"
定义要生成的html select
元素的名称。如果在浏览器中加载页面后查看html源,则可以看到此信息。 <s:select/>
标记生成html选择以及其中的html选项元素。在这种情况下,当departments
列表上发生迭代时,将访问每个department
对象,并将其departmentId
设置为选项元素的value
属性和name
将department对象设置为您在select元素中看到的内容。您可以参考上面链接中的s:select标记参考来获取更多信息。