课程表

Struts2 教程

Struts2 标签

Struts2 集成

工具箱
速查手册

Struts2 property/push/set

当前位置:免费教程 » Java相关 » Struts2
property标签用于获取值的属性,如果没有指定,它将默认为在值栈的顶部。此示例显示了三个简单的数据标签的用法,即setpushproperty

创建action类

在本章节的学习中,我们会再次使用Struts2 类型转换章节中给出的示例,但需要稍作修改。我们可以考虑使用下面的POJO类Environment.java进行类的创建。

  1. package com.w3xue.struts2;
  2. public class Environment {
  3. private String name;
  4. public Environment(String name)
  5. {
  6. this.name = name;
  7. }
  8. public String getName() {
  9. return name;
  10. }
  11. public void setName(String name) {
  12. this.name = name;
  13. }
  14. }
创建以下action类:

  1. package com.w3xue.struts2;
  2. import com.opensymphony.xwork2.ActionSupport;
  3. public class SystemDetails extends ActionSupport {
  4. private Environment environment = new Environment("Development");
  5. private String operatingSystem = "Windows XP SP3";
  6. public String execute()
  7. {
  8. return SUCCESS;
  9. }
  10. public Environment getEnvironment() {
  11. return environment;
  12. }
  13. public void setEnvironment(Environment environment) {
  14. this.environment = environment;
  15. }
  16. public String getOperatingSystem() {
  17. return operatingSystem;
  18. }
  19. public void setOperatingSystem(String operatingSystem) {
  20. this.operatingSystem = operatingSystem;
  21. }
  22. }

创建视图

让我们使用具有以下内容的System.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <%@ taglib prefix="s" uri="/struts-tags"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  5. "http://www.w3.org/TR/html4/loose.dtd">
  6. <html>
  7. <head>
  8. <title>System Details</title>
  9. </head>
  10. <body>
  11. <p>The environment name property can be accessed in three ways:</p>
  12. (Method 1) Environment Name:
  13. <s:property value="environment.name"/><br/>
  14. (Method 2) Environment Name:
  15. <s:push value="environment">
  16. <s:property value="name"/><br/>
  17. </s:push>
  18. (Method 3) Environment Name:
  19. <s:set name="myenv" value="environment.name"/>
  20. <s:property value="myenv"/>
  21. </body>
  22. </html>
现在,我们逐个过一下三个标签选项:
  • 在第一种方法中,我们使用property标签获取环境名称的值。因为环境变量在action类中,所以它在值栈中自动可用,我们可以使用environment.name属性直接引用它。当一个类中的属性数量有限时,方法一工作正常。想象一下,如果你在Environment类中有20个属性,每次你需要引用这些变量,你都需要添加“environment.”作为前缀,而这就是需要push标签来处理的地方了。
  • 在第二种方法中,我们将“environment”属性推送到值栈。因而在push标签的中,environment属性在值栈的根目录下可用。所以你可以很容易地引用属性,如示例所示。
  • 在最后的方法中,我们使用set标签创建一个名为myenv的新变量。此变量的值设置为environment.name。那么,无论我们在哪引用environment的名称,我们都可以使用这个变量。

配置文件

你的struts.xml应该如下所示:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <constant name="struts.devMode" value="true" />
  7. <package name="helloworld" extends="struts-default">
  8. <action name="system"
  9. class="com.w3xue.struts2.SystemDetails"
  10. method="execute">
  11. <result name="success">/System.jsp</result>
  12. </action>
  13. </package>
  14. </struts>
你的web.xml应该如下所示:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  7. id="WebApp_ID" version="3.0">
  8. <display-name>Struts 2</display-name>
  9. <welcome-file-list>
  10. <welcome-file>index.jsp</welcome-file>
  11. </welcome-file-list>
  12. <filter>
  13. <filter-name>struts2</filter-name>
  14. <filter-class>
  15. org.apache.struts2.dispatcher.FilterDispatcher
  16. </filter-class>
  17. </filter>
  18. <filter-mapping>
  19. <filter-name>struts2</filter-name>
  20. <url-pattern>/*</url-pattern>
  21. </filter-mapping>
  22. </web-app>
现在,右键单击项目名称,然后单击“Export”> “WAR File”以创建WAR文件。然后在Tomcat的webapps目录中部署WAR文件。最后,启动Tomcat服务器并尝试访问URL http://localhost:8080/HelloWorldStruts2/system.action,将显示以下界面:

系统信息

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号