日期:2014-05-17  浏览次数:20819 次

struts2 学习问题请教
正在学习java,现在学到struts2框架,对于:配置struts.xml  、写DAO和action这些流程能够大概了解。就是对于action中的输入、输出属性和jsp之间的交互感觉摸不清头绪。

请问jsp向action中输入属性一般就是使用<form>提交的方法吗?action向jsp中输出属性一般是使用struts的<property>标签吗? 另外什么时候会用到el和ognl表达式?先谢谢各位高手了。
struts2 jsp

------解决方案--------------------
jsp向action提交数据一般是form提交,url追加参数。说白了就get post。
action返回给jsp页面,带的数据可以用多种方式显示,比如struts标签,el ognl等都可以。
你的理解基本是正确的
------解决方案--------------------
楼主刚才说的传值方式是可以的,但是为了更加的高效,一般会采取ajax提交
例子:
$.ajax({
url: getRootPath()+"/subjectidIsPaper.action",
data:{
subjectid:subjectid
},
    dataType : 'json',
    type: "POST",
    success: function(data){
        var arr=data.data;
        var questioncount = arr[0].num;
        var totalmark = arr[0].score;
        var duration = arr[0].duration;
        if (questioncount==0
------解决方案--------------------
totalmark==0
------解决方案--------------------
duration==0) {
alert("该科目没有试卷规则!请重新选择!");
return false;
} else {
examIsOk(subjectid,subjectname);
}
        }
    });


java 


 public String subjectidIsPaper(){
        HttpServletRequest request = ServletActionContext.getRequest();
        String subjectid = request.getParameter("subjectid").toString();
        String jsonStr=paperMService.subjectidIsPaper(subjectid);
        ServletActionContext.getResponse().setContentType("text/html");
        ServletActionContext.getResponse().setCharacterEncoding("utf-8");
        PrintWriter out = null;
        try {
            out = ServletActionContext.getResponse().getWriter();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if(jsonStr == "{data:]}" 
------解决方案--------------------
 jsonStr.equals("{data:]}")){ 
            jsonStr = "{data:[{num:\"0\",scor