struts2實現複數加減乘除
阿新 • • 發佈:2018-11-03
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <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> </web-app>
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> <package name="myPackge" namespace="/" extends="struts-default"> <action name="pluralAction" class="com.Action.pluralAction"> <result name="success">/index.jsp</result> </action> </package> </struts>
pluralAction
package com.Action; import com.opensymphony.xwork2.ActionSupport; public class pluralAction extends ActionSupport { private String first1; private String check1; private String first2; private String check; private String second1; private String check2; private String second2; private String res1; private String check3; private String res2; private String info; public String getFirst1() { return first1; } public void setFirst1(String first1) { this.first1 = first1; } public String getCheck1() { return check1; } public void setCheck1(String check1) { this.check1 = check1; } public String getFirst2() { return first2; } public void setFirst2(String first2) { this.first2 = first2; } public String getCheck() { return check; } public void setCheck(String check) { this.check = check; } public String getSecond1() { return second1; } public void setSecond1(String second1) { this.second1 = second1; } public String getCheck2() { return check2; } public void setCheck2(String check2) { this.check2 = check2; } public String getSecond2() { return second2; } public void setSecond2(String second2) { this.second2 = second2; } public String getRes1() { return res1; } public void setRes1(String res1) { this.res1 = res1; } public String getCheck3() { return check3; } public void setCheck3(String check3) { this.check3 = check3; } public String getRes2() { return res2; } public void setRes2(String res2) { this.res2 = res2; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } @Override public String execute() throws Exception { //第一個複數 String first1 = getFirst1(); String check1 = getCheck1(); String first2 = getFirst2(); //運算子 String check = getCheck(); //第二個複數 String second1 = getSecond1(); String check2 = getCheck2(); String second2 = getSecond2(); if (isNumeric(first1) && isNumeric(first2) && isNumeric(second1) && isNumeric(second2)) { if (check.equalsIgnoreCase("+")) { res1 = Integer.parseInt(first1) + Integer.parseInt(second1) + ""; check3 = "+"; res2 = Integer.parseInt(first2) + Integer.parseInt(second2) + ""; } else if (check.equalsIgnoreCase("-")) { res1 = Integer.parseInt(first1) - Integer.parseInt(second1) + ""; check3 = "-"; res2 = Integer.parseInt(first2) - Integer.parseInt(second2) + ""; } else if (check.equalsIgnoreCase("*")) { res1 = Integer.parseInt(first1) * Integer.parseInt(second1) - Integer.parseInt(second2) * Integer.parseInt(first2) + ""; check3 = "+"; res2 = Integer.parseInt(first2) * Integer.parseInt(second1) + Integer.parseInt(second2) * Integer.parseInt(first1) + ""; } else if (check.equalsIgnoreCase("/")) { int x1 = Integer.parseInt(first1) * Integer.parseInt(second1) + Integer.parseInt(second2) * Integer.parseInt(first2); int x2 = Integer.parseInt(first2) * Integer.parseInt(second1) - Integer.parseInt(first1) * Integer.parseInt(second2); int x3 = Integer.parseInt(second1) * Integer.parseInt(second1) + Integer.parseInt(second2) * Integer.parseInt(second2); res1 = x1 / x3 + ""; check3 = "-"; res2 = x2 / x3 + ""; } info = "計算結果為:" + res1 + check3 + res2 + "i"; } else { info = "您輸入的格式錯誤"; } return SUCCESS; } private static boolean isNumeric(String str) { for (int i = str.length(); --i >= 0; ) { if (!Character.isDigit(str.charAt(i))) { return false; } } return true; } private static String isMore(String test) { if (Integer.parseInt(test) < 0) { return "-"; } else { return "+"; } } }
index.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
Created by IntelliJ IDEA.
User: Elijah
Date: 2018/9/27
Time: 19:21
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>複數運算</title>
</head>
<body>
<s:form action="pluralAction">
<s:label value="請輸入第一個複數" theme="simple"/><br/>
<s:textfield name="first1" theme="simple"/>+<s:textfield name="first2" theme="simple"/>i<br/>
<br/>
<s:select list="{'+','-','*','/'}" name="check" label="運算子" theme="simple"/><br/><br/>
<s:label value="請輸入第二個複數" theme="simple"/><br/>
<s:textfield name="second1" theme="simple"/>+<s:textfield name="second2" theme="simple"/>i<br/>
<s:submit value="計算"/>
</s:form>
<br>
<hr width="100%">
<s:property value="info"/>
</body>
</html>