struts2 传值之2域模式(DomainModel)

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值