1. 程式人生 > >Struts2.5.17--實現簡單計算器

Struts2.5.17--實現簡單計算器

如果第一次接觸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.執行結果

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述