Struts 2 - Param 标签
param 标签可用于参数化其他标签。include 标签和 bean 标签就是此类标签的示例。让我们以讨论 bean 标签时讨论过的相同示例为例。
创建 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>
右键单击项目名称,然后单击 Export > WAR File 以创建 War 文件。然后将此 WAR 部署到 Tomcat 的 webapps 目录中。最后,启动 Tomcat 服务器并尝试访问 URL http://localhost: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 并打印出计数器的值。