Struts2传值之3ModelDriven

ModelDriven这个叫模型驱动


总的来说需要建javabean类,写Action的时候需要继承接口ModelDriven,可以不用在Action类中编写对应的get/set方法,但是需要实例化Cal类.

.jsp

<body>
    <form action="calAction" method="post" >
     操作数1:<input type="text" name="num1" value="${requestScope.num1}"><br>
    运算: <input type="radio" name="op" value="+"   ${requestScope.op=="+"? "checked": " "}>+
           <input type="radio" name="op" value="-"   ${requestScope.op=="-"? "checked" : " "}>-
           <input type="radio" name="op" value="*"   ${requestScope.op=="*"? "checked" : " "}>*
           <input type="radio" name="op" value="/"   ${requestScope.op=="/"? "checked" : " "}>/<br> 
    操作数2:<input type="text" name="num2" value="${requestScope.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;
import com.opensymphony.xwork2.ModelDriven;

public class calAction extends ActionSupport implements ModelDriven<Cal> {
	private Cal cal=new Cal();
	public String caloption(){
		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";
	}
	@Override
	public Cal getModel() {
		// TODO Auto-generated method stub
		return cal;
	}

}
javabean

package cal;

public class Cal {
	private float num1;
	
    private String op;
    
    private float num2;

	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;
	}
}
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="caloption">
            <result name="success">/cal.jsp</result>
        </action>
    </package>

    

    <!-- Add packages here -->

</struts>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值