2011-10-03 79 views
-1

我有兩個相關的struts jsp文件。 我是新來的,有點困惑。struts標記問題

  1. 在#1中,對於td,這些值來自哪裏,我的意思是firstname,lastname,department.name?那些來自java action或hibernate類的字段?

  2. #10,第10行,員工是什麼? employee.employee.id與#2代碼底部的那個是一樣的嗎?還有,在s:select中,是部門ID和某個班級的名字?

非常感謝您的幫助...

<%@ 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> 

2.

<%@ 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.可以檢索到label.firstName m由Struts維護的任何值棧。這可以來自消息資源,也可以來自轉發給jsp的action類的屬性。請參考文檔以下更多信息:

http://struts.apache.org/2.2.3/docs/tag-syntax.html

2號employee.employeeId可參考轉發此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部門對象設置爲內容,您將在select元素中看到該內容。您可以參考上述鏈接中的s:select標籤參考瞭解更多信息。

+0

非常感謝。 :) – UIBizGuy

1

for#1 存在applicationresource.properties文件中的鍵值對。此文件可用於WEB-Inf文件夾或其路徑在標籤下的WEB.xml文件中指定。 <context-param> <param-name></param-name> <param-value>(specify the application resource file path)</param-value> </context-param>

這個文件包含key-value對,這些key用在你的jsp pages中。在這個文件中搜索這些label.firstname,label.lastname,你會得到整個情況。