struts2支持调用指定Action类中某一个业务方法。如果没有指定,则调用execute方法。
1. 第一种实现方式,通过URL叹号参数
1.1 创建Action类,带多个方法
package com.clzhang.ssh.demo4; public class ListAction { public String listUser() { System.out.println("列出员工信息"); return "user"; } public String listSalarySum() { System.out.println("列出员工总工资信息"); return "sum"; } public String execute() { System.out.println("执行了execute方法"); return "default"; } }
1.2 配置文件如下
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="myStruts" extends="struts-default"> <global-results> <result name="user">/ssh/demo4/user.jsp</result> <result name="sum">/ssh/demo4/sum.jsp</result> <result name="default">/ssh/demo4/default.jsp</result> </global-results> <action name="list" class="com.clzhang.ssh.demo4.ListAction"> </action> </package> <constant name="struts.action.extension" value="action"></constant> </struts>
上述配置文件中使用了全局result,只需配置一次,其它任何地方用到此配置的都不需要再行配置。
1.3 各JSP文件如下
user.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> 员工列表 </body> </html>
sum.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> 总工资列表 </body> </html>
default.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> 默认的execute()语句 </body> </html>
1.4 调用
1.4.1 打开IE,输入:http://127.0.0.1:8080/st/ssh/list.action
结果如下:
1.4.2 打开IE,输入:http://127.0.0.1:8080/st/ssh/list!listUser.action
结果如下:
2. 第二种实现方式,在Action标记中加入method属性
2.1 创建类,同上
2.2 配置文件如下
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="myStruts" extends="struts-default"> <global-results> <result name="user">/ssh/demo4/user.jsp</result> <result name="sum">/ssh/demo4/sum.jsp</result> <result name="default">/ssh/demo4/default.jsp</result> </global-results> <action name="listSalarySum" class="com.clzhang.ssh.demo4.ListAction" method="listSalarySum"> </action> <action name="listUser" class="com.clzhang.ssh.demo4.ListAction" method="listUser"> </action> </package> <constant name="struts.action.extension" value="action"></constant> </struts>
2.3 各JSP文件同上
2.4 测试
2.4.1 打开IE,输入:http://127.0.0.1:8080/st/ssh/listSalarySum.action
结果如下:
3. 第三种实现方式,在表单提交按钮中加入method属性
参考:struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/7967.html