继承ActionSupport实现Action与属性驱动传参

it2023-01-25  53

在action中继承ActionSupport 类,重写execute方法

所用到的 jar 包

1.配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>

2.action接口

package action; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class SumActionSupport extends ActionSupport { private double x; private double y; private double sum; public String execute() { String forward = "-"; sum = x + y; if (sum > 0) forward = "+"; return forward; } public SumActionSupport() { super(); // TODO Auto-generated constructor stub } public SumActionSupport(double x, double y) { super(); this.x = x; this.y = y; this.sum = x + y; } public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } public double getSum() { return sum; } public void setSum(double sum) { this.sum = sum; } }

3.配置struts.xml文件

<?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> <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> --> <package name="default" namespace="/" extends="struts-default"> <!-- <default-action-ref name="index" /> <global-results> <result name="error">/WEB-INF/jsp/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> --> <action name="opadd" class="action.SumActionSupport" method="execute"> <result name="+">p.jsp</result> <result name="-">n.jsp</result> </action> </package> <include file="example.xml"/> <!-- Add packages here --> </struts>

由于action中的execute为默认方法,method属性可以省略

4.input.jsp页面、p.jsp页面、n.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="opadd" method="post"> 加数:<input type="text" name="x"> 加数:<input type="text" name="y"> <input type="submit" value="提交"> </form> </body> </html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> ${x}+ ${y}= ${sum} </body> </html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> ${x}+ ${y}= ${sum} </body> </html>
最新回复(0)