根据前端jspjs⽂件实现action步骤
1、待更改的⽂件greenChannel.jsp,greenChannel.js。
2、将它们放⼊对应的⽬录下。
3、学⽣点击菜单上的绿⾊通道,将请求greenChannelAction,该action未进⾏任何特殊操作,直接跳转到greenChannel.jsp页⾯。
4、实现页⾯加载完成后发送请求的⽅法
4-1、在greenChannel.js最底部添加如下代码:
//页⾯加载之后⽴即执⾏
$(function(){
firstSubmit();//该函数同样需要定义在该⽂件内
});
4-2、如果greenChannel.js内存在firstSubmit()⽅法,则在其内修改。否则另外创建⼀个。
4-3、在firstSubmit()⽅法内填写
$.get("什么Action","",
function(data,statusText){在这⾥写代码},"json"
4-4、什么Action是⾃⼰需要建的类。这个类需要有Map dataMap属性get/set⽅法,这个属性⽤来返回给浏览器数据。实现public String execute()⽅法。在这个⽅法内写:
// ⾸先进⾏登录判断
ActionContext actionContext = Context();
Map<String, Object> session = Session();
if (("identity") == null) {
dataMap.put("success", false);
dataMap.put("webName", "indexAction");
return"success";
}
if ((int) ("identity") != 1) {
dataMap.put("success", false);
dataMap.put("webName", "indexAction");
return"success";
}
调⽤规则类内的⽅法或者⾃⼰写⽅法从GreenChannel数据库内取出对应学号的数据。如果不能取出
dataMap.put("success", false);
dataMap.put("webName","什么2action");//同样这个action需要⾃⼰命名,不要重复了,稍后介绍其内容
return"success";
如果能取出⼀条记录,说明已经申请过绿⾊通道,那么
查看这条记录的审批结果,
如果还未审批
dataMap.put("success",true);
dataMap.put("result","耐⼼等待审批");
如果过了
dataMap.put("success",true);
dataMap.put("result","申请通过");
否则
dataMap.put("success",true);
dataMap.put("result","申请被拒");
最后(所有)的返回值均为“success”。
4-5、现在回去实现4-3的⽅法。网站底部代码js特效
var ElementById("name");参数是对应jsp⽂件中form表单下的所有⽂本框的id属性。同时form表单也要有id。如果id缺少⾃⾏补齐。
name.value = data.dataMap.name;这句话的含义是为name⽂本框赋值
其中data为4-3中回调函数的参数,dataMap是什么Action的属性,name是
dataMap.put("name","这⾥是值")。
想实现dataMap的功能需要在l内添加:
<action name="stuInfoSubmitAction"class="cn.ister.form.InformationCollectionAction">
<result name="success"type="json">
<!--清除浏览器缓存-->
<param name="noCache">true</param>
<!--设置服务器响应类型-->
<param name="contentType">application/json</param>
<!--排除值为null的属性-->
<param name="excludeNullProperties">true</param>
<!--指定序列号返回给浏览器的属性-->
<param name="includeProperties">dataMap.*</param>
</result>
</action>
只需要更改action name和class(刚才定义的什么Action类)即可。
⽤上⾯的⽅式为页⾯上的每⼀个有内容的⽂本框赋值。
在这个过程中还需要判断加⼊如下判断
if(data.dataMap.success == false)
window.location.href = data.dataMap.webName;
else {
将保存按钮设置成不可点的
在这⾥完成⽂本框的赋值
alert(sult);
}
5、完成什么2Action类。拥有与jsp⽂件相对应的属性、get/set⽅法和dataMap属性。同理在l内配置该action。另外在除了dataMap属性之外的所有属性的get⽅法上添加
@JSON(serialize = false) // 采⽤注解的⽅式不序列化该属性
在execute⽅法内完成创建对应po对象,调⽤对象的set⽅法为对象赋值,赋值来源可以直接使⽤该action类内的属性。将对象存进数据
库。建议使⽤dao.update()⽅法。
6、可能会遇到jsp页⾯上部分属性⽆法编辑然后服务器获得不到数据的情况,可以先在js内将其变成可编辑的,在提交后再变回去。还有可能遇到类型不匹配或未定义的错误,仔细看看数据库的类型,Java的类型和页⾯上显⽰的类型。页⾯⼀般都是string类型。int也可以。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论