- Struts 2 教程
- Struts2 - 首页
- Struts2 - 基本 MVC 架构
- Struts2 - 概述
- Struts2 - 环境设置
- Struts2 - 架构
- Struts2 - 示例
- Struts2 - 配置
- Struts2 - Action
- Struts2 - 拦截器
- Struts2 - 结果类型
- Struts2 - 值栈/OGNL
- Struts2 - 文件上传
- Struts2 - 数据库访问
- Struts2 - 发送邮件
- Struts2 - 验证
- Struts2 - 本地化
- Struts2 - 类型转换
- Struts2 - 主题/模板
- Struts2 - 异常处理
- Struts2 - 注解
- Struts 2 标签
- Struts2 - 控制标签
- Struts2 - 数据标签
- Struts2 - 表单标签
- Struts2 - Ajax 标签
- Struts 2 集成
- Struts2 - Spring
- Struts2 - Tiles
- Struts2 - Hibernate
- Struts 2 有用资源
- Struts2 - 问题和解答
- Struts2 - 快速指南
- Struts2 - 有用资源
- Struts2 - 讨论
Struts 2 - Bean 标签
bean 标签是set 和 push 标签的组合,它允许您创建一个对象的新实例,然后设置变量的值。然后它使 bean 在值栈中可用,以便可以在 JSP 页面中使用它。
Bean 标签需要一个 Java Bean 才能一起使用。因此,应遵循标准的 Java Bean 规则。即,bean 应该有一个无参构造函数。所有您想要公开和使用的属性都应该具有 getter 和 setter 方法。出于本练习的目的,让我们使用 struts util 包中提供的以下 Counter 类。Counter 类是一个 bean,可用于跟踪计数器。
让我们保持所有文件不变并修改 HelloWorld.jsp 文件。
创建 Action 类
package com.tutorialspoint.struts2; public class HelloWorldAction { private String name; public String execute() throws Exception { return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
创建视图
让我们使用以下内容创建HelloWorld.jsp:
<%@ page contentType = "text/html; charset = UTF-8" %> <%@ taglib prefix = "s" uri = "/struts-tags" %> <html> <head> <title>Hello World</title> </head> <body> <s:bean name = "org.apache.struts2.util.Counter" var = "counter"> <s:param name = "first" value = "20"/> <s:param name = "last" value = "25" /> </s:bean> <ul> <s:iterator value = "#counter"> <li><s:property /></li> </s:iterator> </ul> </body> </html>
接下来,让我们使用以下内容创建employees.jsp:
<%@ page contentType = "text/html; charset = UTF-8"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <html> <head> <title>Employees</title> </head> <body> <p>An example of the include tag: </p> <s:include value = "HelloWorld.jsp"/> </body> </html>
配置文件
您的struts.xml 应如下所示:
<?xml version = "1.0" Encoding = "UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name = "struts.devMode" value = "true" /> <package name = "helloworld" extends = "struts-default"> <action name = "hello" class = "com.tutorialspoint.struts2.HelloWorldAction" method = "execute"> <result name = "success">/HelloWorld.jsp</result> </action> <action name = "employee" class = "com.tutorialspoint.struts2.Employee" method = "execute"> <result name = "success">/employee.jsp</result> </action> </package> </struts>
您的web.xml 应如下所示:
<?xml version = "1.0" Encoding = "UTF-8"?> <web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0"> <display-name>Struts 2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
右键单击项目名称,然后单击导出 > WAR 文件以创建 WAR 文件。然后将此 WAR 部署到 Tomcat 的 webapps 目录中。最后,启动 Tomcat 服务器并尝试访问 URL https://127.0.0.1:8080/HelloWorldStruts2/hello.action。这将生成以下屏幕:
在此示例中,我们正在实例化 org.apache.struts2.util.Counter bean 的新实例。然后我们将第一个属性设置为 20,最后一个属性设置为 25。
这意味着计数器将具有值 20、21、22、23、24 和 25。我们为 bean 指定名称“counter”。Struts bean 标签实例化 bean 并将其放入值栈中。现在,我们可以使用迭代器遍历 Counter bean 并打印出计数器的值。