正在学习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\",score:\"0\",duration:\"0\"}]}";
}
JSONObject obj = JSONObject.fromObject(jsonStr);
out.print(obj);
return null;
}