如果第一次接触struts2可以参考文章初次使用Struts2.5.17
1.实现Action对象(业务逻辑处理)
result.java
package jisuanqi;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class result extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private static String x,y,num1,num2,check;
private double num3,num4,num5;
//表单验证
public void validate() {
if(check.equals("/") && num2.equals("0")) {
addFieldError("num2","除数不能为0");
}
if(num1.length()==0) {
addFieldError("num1","第一个数不能为空");
}
if(num2.length()==0 && num2!="0") {
addFieldError("num2","第二个数不能为空");
}
}
public String execute() {
x = getNum1();
y = getNum2();
num4 = Double.parseDouble(x);
num5 = Double.parseDouble(y);
System.out.println(num4);
System.out.println(check);
System.out.println(num5);
if(check.equals("+")) {
num3 = num4 + num5;
}
if(check.equals("-")) {
num3 = num4 - num5;
}
if(check.equals("*")) {
num3 = num4 * num5;
}
if(check.equals("/")) {
num3 = num4 / num5;
}
System.out.println(num3);
ActionContext.getContext().getSession().put("num3", num3);
return SUCCESS;
}
/*public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}*/
public String getNum1() {
return num1;
}
public void setNum1(String num1) {
this.num1 = num1;
}
public String getNum2() {
return num2;
}
public void setNum2(String num2) {
this.num2 = num2;
}
public double getNum4() {
return num4;
}
public void setNum4(double num4) {
this.num4 = num4;
}
public double getNum5() {
return num5;
}
public void setNum5(double num5) {
this.num5 = num5;
}
public String getCheck() {
return check;
}
public void setCheck(String check) {
this.check = check;
}
public double getNum3() {
return num3;
}
public void setNum3(double num3) {
this.num3 = num3;
}
}
2.实现主页面
index.jsp
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="javax.*" %>
<%@ taglib prefix ="s" uri="/struts-tags" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>计算器</title>
<s:head /></head>
<body>
<s:form action="result" method="POST">
<s:label value="简单计算器"></s:label>
<s:textfield name="num1" label="第一个数" ></s:textfield>
<s:select name="check" list="{'+','-','*','/'}"></s:select>
<s:textfield name="num2" label="第二个数" ></s:textfield>
<s:submit value="计算"></s:submit>
</s:form>
</body>
</html>
3.配置struts.xml,注意文件名struts
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//ApacheSoftwareFOUNDATION//dtdsTRUSTS Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name = "default" namespace="/" extends = "struts-default">
<action name = "result" class="jisuanqi.result" method="execute">
<result name="success">/result.jsp</result>
<result name="login">/index.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
4.计算结果页面
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%@ taglib prefix ="s" uri="/struts-tags" %>
<title>计算结果</title>
</head>
<body>
<p>您的选择的运算符是:<s:property value="check" /></p>
<p>您计算的结果是:<s:property value="num3" /></p>
</body>
</html>
5.web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>jisuanqi</display-name>
<filter>
<filter-name>jisuanqi</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>jisuanqi</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
6.导入的包
7.运行结果