struts2 传值之2域模式(DomainModel)

来源:互联网 发布:sql select语句查询器 编辑:程序博客网 时间:2024/05/17 04:33

struts2的传值方式2域模式也叫DomainModel


总的来说首先你需要建一个要存储得javabean   cal类把num1、num2和op封装

然后在jsp页面写表单把要传的值写上,在Action页面声明这个类并且为这个类创建set和get方法,

Cal类不需要显式的实例化,struts会自动帮你实例化,但前提条件是,传值时需要使用  对象名.参数名  的方式进行传递


.jsp


 <body>    <form action="calAction" method="post" >     操作数1:<input type="text" name="cal.num1" value="${requestScope.cal.num1}"><br>    运算: <input type="radio" name="cal.op" value="+"   ${requestScope.cal.op=="+"? "checked": " "}>+           <input type="radio" name="cal.op" value="-"   ${requestScope.cal.op=="-"? "checked" : " "}>-           <input type="radio" name="cal.op" value="*"   ${requestScope.cal.op=="*"? "checked" : " "}>*           <input type="radio" name="cal.op" value="/"   ${requestScope.cal.op=="/"? "checked" : " "}>/<br>     操作数2:<input type="text" name="cal.num2" value="${requestScope.cal.num2}"><br>    <input type="submit" value="计算" ><br>     结果:<input type="text" value="${requestScope.result}">     </form>  </body>


Action

package action;import cal.Cal;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class calAction extends ActionSupport {private Cal cal;public Cal getCal() {return cal;}public void setCal(Cal cal) {this.cal = cal;}public String cal(){float result=0;System.out.println(cal.getOp());float num1=cal.getNum1();float num2=cal.getNum2(); switch(cal.getOp().charAt(0)){  case '+':  result=num1+num2;  break;  case '-':    result=num1-num2;               break;            case '*':              result=num1*num2;               break;            case '/':              result=num1/num2;          } System.out.print(result); ActionContext action=ActionContext.getContext(); action.put("result", result); return "success";}}

.java(Bean)

package cal;public class Cal {private float num1;    private String op;    private float num2;    private float result;public float getNum1() {return num1;}public void setNum1(float num1) {this.num1 = num1;}public String getOp() {return op;}public void setOp(String op) {this.op = op;}public float getNum2() {return num2;}public void setNum2(float num2) {this.num2 = num2;}public float getResult() {return result;}public void setResult(float result) {this.result = result;}    }
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">                <action name="calAction" class="action.calAction" method="cal">            <result name="success">/cal.jsp</result>        </action>    </package>        <!-- Add packages here --></struts>


好了这就是DomainModel