Struts2.5.17--實現簡單計算器
阿新 • • 發佈:2018-12-30
如果第一次接觸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.執行結果