struts标记问题

时间:2011-10-03 04:38:33

标签: jsp tags struts

我有两个相关的struts jsp文件。 我是新手,有点困惑。

    #li>

    在#1中,对于td,这些值来自哪里,我的意思是名字,姓氏,部门名称?是那些来自java动作或hibernate类的字段?

  1. 在#2,第10行,什么是员工? employee.employee.id和#2代码底部的一样吗?另外,在s:select中,是某个类的departmentID和名称吗?

  2. 非常感谢你的帮助......

    1

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

2 个答案:

答案 0 :(得分:1)

#p>#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>

这个文件包含你的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标记参考来获取更多信息。