struts2的三种传值方式之1属性传值

属性传值也就是普通的传值方法

先总的说一下属性传值是什么样子的!

在jsp页面直接写就可以了,没有什么特殊的要求和servlet的jsp页面一样

在Action页面定义要传的值,创建get和set方法。可以直接用。

具体参见代码,我用myeclipse写的

.jsp

 <body>
    <form action="calAction.action" 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 com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class calAction extends ActionSupport {
	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;
	}
	public String cal(){
		float result=0;
		System.out.println(op.charAt(0));//op.charAt(0)是因为传过来的数据类型不是字符型的,需要用charAt(0)提取第一个元素
		 switch(op.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";
	}
}

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>

***************

struts.enable.DynamicMethodInvocation = true,-动态方法调用,为true时,就可以在struts.xml配置“*”的通配符,来调用action里的方法

struts.devMode
开启这个选项会使struts每次都重新加载初始化文件,配置文件,包括struts.properties,struts.xml等

struts.devMode=true不会自动加载任何配置文件,配置上这个后如果框架出了异常会有非常详细的异常堆栈打印出来,而不是单纯的404或500页面




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值