MyEclipse使用技巧之通过断点看值是否存入action中
2016-01-20 16:37
447 查看
在页面中新”案发区划“栏:
显示如下:
表单提交保存代码:
通过提交代码看出,转到submitAlarmInfo.action,通过使用ctrl+H键,搜索全系统文件,在File Search中搜索submitAlarmInfo.action,找到该值出现的文件xwork-assign.xml:
通过上述代码得到执行该方法的Action文件,打开该AlarmInfoAction.java文件,按ctrl+F在该文件中找”submitAlarmInfo“方法:
当新增时,调用insertAlarmInfoJbj,按住Ctrl,鼠标放在该接口上查看接口(Manager)以及接口说明(ManagerImpl),在ManagerImpl中找到对应的方法:
由方法看出,Dao调用的SQL语句为insetALarmInfoJbj,继续Ctrl+H搜索所有文件,在SQL.xml中找到该语句,打开该文件:
增加两个字段:ALARM_REGIONALISM ALARM_REGIONALISM_CN
同样在数据库对应表格中增加两个字段:ALARM_REGIONALISM ALARM_REGIONALISM_CN分别存放案发区划代码,案发区划中文
在修改sql以后,根据parameterClass,按住Ctrl,鼠标左击进入该类,对新字段进行定义并创建get set方法:
(若不创建,则数据库会报错)
至此:通过流程操作并查看数据库表发现,新增字段可以存到数据库中,但是新增的“发案区划中文”字段并不能保存到数据库中,在AlarmInfoAction.java中的sumbitAlarmInfo增加断点,Tomcat在debug模式下启动,新增一项并保存则进入该方法时会暂停,按F6继续操作,右击alarminfo选择inspect,查看各个值,发现sceneRegionalismCn值为null,进入页面,右击查看源代码:
由源代码看出:“发案区划”存入了“sceneRegionalismDisplayValue”中,在执行submitAlarmInfo方法时,在该类AlarmInfoAction.java中定义新String为
“sceneRegionalismDisplayValue”
在执行新增和修改前为sceneRegionalismCn赋值sceneRegionalismDisplayValue,具体参加上面submitAlarmInfo方法。至此再使用断点,查看后值存入成功。
增加表单校验:
校验调用在saveOnClick()方法中,参见上面。至此功能完成。
<tr> <td class="form_label"> <table cellpadding="0" cellspacing="0" width="98%"> <tr> <td align="left" id="t_sceneRegionalism">发案区划</td> <td align="right"><img name="reg" src="<%=path%>/images/must.gif"/></td> </tr> </table> </td> <td class=form_content> <jdf:singleDict dictName="GXSDM" chooseMode="query" regionFlag="region" mode="tree" name="alarmInfo.sceneRegionalism" cssStyle="width:70%" id="sceneRegionalism" readonly="true" cssClass="field" pingyiSelect="1"/> </td> </tr>
显示如下:
表单提交保存代码:
<div style="text-align: center"> <input type="button" class="button" onclick="saveOnClick();" value="保存"> </div> function <span style="color:#33cc00;">saveOnClick</span>() { <span style="white-space:pre"> </span>var opttype=document.getElementById("optype").value; <span style="white-space:pre"> </span>if(v.exec()){ <span style="white-space:pre"> </span>var ispass= validatealarmInforMants(); if(ispass){ <span style="white-space:pre"> </span>if(opttype=='0'){ var buffalo = new Buffalo("<%=path%>/remoting"); <span style="white-space:pre"> </span>var alarmNo=document.getElementById("alarmNo").value; var isczjjbh=true; buffalo.remoteCall("/AlarmInfoJbjManagerAjax.findAlarmInfoByAlarmNo",[alarmNo],function(reply){
<span style="white-space:pre"> </span>var count=parseInt(reply.getResult()); <span style="white-space:pre"> </span>if (count>=1){
<span style="white-space:pre"> </span>alert("警情受理号已经存在!"); <span style="white-space:pre"> </span>}else{ if (!confirm("是否确认提交接警信息?")) return false; if (isBusy()) { <span style="white-space:pre"> </span>alert("已经提交,请等待完成!"); } else { var obj = document.all.addAlarmInfoForm; obj.action = "<%=path%>/pages/business/assign/sumbitAlarmInfo.action"; obj.submit(); } } }) }else{ <span style="white-space:pre"> </span>if (!confirm("是否确认提交接警信息?")) return false; if (isBusy()) { alert("已经提交,请等待完成!"); } else { var obj = document.all.addAlarmInfoForm; obj.action = "<%=path%>/pages/business/assign/sumbitAlarmInfo.action"; obj.submit(); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} } }
通过提交代码看出,转到submitAlarmInfo.action,通过使用ctrl+H键,搜索全系统文件,在File Search中搜索submitAlarmInfo.action,找到该值出现的文件xwork-assign.xml:
<action name="sumbitAlarmInfo" class="com.cbitech.csims.business.action.assign.AlarmInfoAction" method="sumbitAlarmInfo"> <result name="success" type="dispatcher">/pages/business/assign/addAlarmInfo.jsp</result> </action>
通过上述代码得到执行该方法的Action文件,打开该AlarmInfoAction.java文件,按ctrl+F在该文件中找”submitAlarmInfo“方法:
/**
* 提交信息接警信息 * @return
*/ public String sumbitAlarmInfo(){ SysUser user=this.getLoginUser(); String curuserName=user.getTrueName(); Date curDate=sysUtilManager.getSystemDateTime(); if(this.optype.equals("0")){ <span style="color:#3333ff;">alarmInfo.setSceneRegionalismCn(sceneRegionalismDisplayValue)</span>; try {<span style="white-space:pre"> </span>//新增 if (alarmInfo != null && alarmInforMant != null) { String alarmInfoId = sysUtilManager.getNextId(); alarmInfo.setId(alarmInfoId); // id alarmInfo.setCreateUser(curuserName); alarmInfo.setCreateDatetime(curDate); alarmInfo.setTaskAssignStatus("0"); alarmInfo.setTaskFeedbackStatus("0"); alarmInfo.setDeleteFlag("0"); alarmInfoJbjManager.insertAlarmInfoJbj(alarmInfo); saveAlarmInfoMant(alarmInfoId, curuserName, curDate); } } catch (Exception e) { e.printStackTrace(); } }else{<span style="white-space:pre"> </span>//修改 <span style="color:#3333ff;">alarmInfo.setSceneRegionalismCn(sceneRegionalismDisplayValue)</span>; alarmInfo.setUpdateDatetime(curDate); alarmInfo.setUpdateUser(curuserName); alarmInfo.setId(alarmId); alarmInfoJbjManager.updateAlarmInfo(alarmInfo); alarmInfoJbjManager.deleteAlarmInfoMant(alarmId); saveAlarmInfoMant(alarmId, curuserName, curDate); } optRsult = SUCCESS; return "success"; }
当新增时,调用insertAlarmInfoJbj,按住Ctrl,鼠标放在该接口上查看接口(Manager)以及接口说明(ManagerImpl),在ManagerImpl中找到对应的方法:
/** * 新增接报警信息 * @param alarmInfo */ public void insertAlarmInfoJbj(AlarmInfoJbjModel alarmInfo) { try { getJbjAssignDao().getSqlMapClientTemplate().insert("insertAlarmInfoJbj", alarmInfo); } catch (Exception e) { e.printStackTrace(); } }
由方法看出,Dao调用的SQL语句为insetALarmInfoJbj,继续Ctrl+H搜索所有文件,在SQL.xml中找到该语句,打开该文件:
增加两个字段:ALARM_REGIONALISM ALARM_REGIONALISM_CN
同样在数据库对应表格中增加两个字段:ALARM_REGIONALISM ALARM_REGIONALISM_CN分别存放案发区划代码,案发区划中文
<insert id="insertAlarmInfoJbj" parameterClass="com.cbitech.csims.business.dao.model.assign.AlarmInfoJbjModel"> insert into alarm_info (id, ALARM_TITLE, ALARM_NO, ALARM_TIME, ALARM_PROPERTY, ALARM_PROPERTY_CN, ALARM_DESC, ALARM_RECEIVER_NAME, ALARM_RECEIVER_PHONE, ALARM_REMARK, TASK_ASSIGN_STATUS, TASK_FEEDBACK_STATUS, DELETE_FLAG, CREATE_USER, <span style="color:#ff9900;">ALARM_REGIONALISM, ALARM_REGIONALISM_CN</span>, CREATE_DATETIME) values (#id#, #alarmTitle#, #alarmNo#, #alarmTime#, #alarmProperty#, #alarmPropertyCn#, #alarmDesc#, #alarmReceiverName#, #alarmReceiverPhone#, #alarmRemark#, #taskAssignStatus#, #taskFeedbackStatus#, #deleteFlag#, #createUser#, <span style="color:#6633ff;"> </span><span style="color:#ff9966;"> </span><span style="color:#ff6600;">#sceneRegionalism#, #sceneRegionalismCn#,</span> #createDatetime# ) </insert>
在修改sql以后,根据parameterClass,按住Ctrl,鼠标左击进入该类,对新字段进行定义并创建get set方法:
(若不创建,则数据库会报错)
/** * 发案区划代码 */ private String sceneRegionalism; /** * 发案区划中文 */ private String sceneRegionalismCn; <span style="white-space:pre"> </span>public String getSceneRegionalism() { return sceneRegionalism; } public void setSceneRegionalism(String sceneRegionalism) { this.sceneRegionalism = sceneRegionalism; } public String getSceneRegionalismCn() { return sceneRegionalismCn; } public void setSceneRegionalismCn(String sceneRegionalismCn) { this.sceneRegionalismCn = sceneRegionalismCn; }
至此:通过流程操作并查看数据库表发现,新增字段可以存到数据库中,但是新增的“发案区划中文”字段并不能保存到数据库中,在AlarmInfoAction.java中的sumbitAlarmInfo增加断点,Tomcat在debug模式下启动,新增一项并保存则进入该方法时会暂停,按F6继续操作,右击alarminfo选择inspect,查看各个值,发现sceneRegionalismCn值为null,进入页面,右击查看源代码:
<tr> <td class="form_label"> <table cellpadding="0" cellspacing="0" width="98%"> <tr> <td align="left" id="t_sceneRegionalism">发案区划</td> <td align="right"><img name="reg" src="/csims/images/must.gif"/></td> </tr> </table> </td> <td class=form_content> <input type="text" name="<span style="color:#3333ff;">sceneRegionalismDisplayValue</span>" value="" id="<span style="color:#3333ff;">sceneRegionalismDisplayValue</span>" class="field" style="width:70%"onBlur='showDIV(false,"sceneRegionalism","GXSDM");'onFocus='showDIV(true,"sceneRegionalism","GXSDM");'onkeyup='query("sceneRegionalism");'/> <span style="white-space:pre"> </span><input type="hidden" name="dictRoot" value="GXSDM" id="sceneRegionalismType"/> <span style="white-space:pre"> </span><input type="hidden" name="dictField" value="Field" id="sceneRegionalismField" /> <span style="white-space:pre"> </span><input type="hidden" name="dictModel" value="Single" id="sceneRegionalismModel"/> <span style="white-space:pre"> </span><a href="#" name="sceneRegionalismLink" id="sceneRegionalismLink" onclick="sceneRegionalismOnClick('GXSDM'); return false;">
<span style="white-space:pre"> </span><img src="/csims/images/icon/dictselect.gif" border="0" align="absmiddle"></a>
<span style="white-space:pre"> </span><input type="hidden" name="alarmInfo.sceneRegionalism" value="" id="sceneRegionalism"/>
由源代码看出:“发案区划”存入了“sceneRegionalismDisplayValue”中,在执行submitAlarmInfo方法时,在该类AlarmInfoAction.java中定义新String为
“sceneRegionalismDisplayValue”
/** * 发案区划中文 */ private String sceneRegionalismDisplayValue; <span style="white-space:pre"> </span>public String getSceneRegionalismDisplayValue() { return sceneRegionalismDisplayValue; } public void setSceneRegionalismDisplayValue(String sceneRegionalismDisplayValue) { this.sceneRegionalismDisplayValue = sceneRegionalismDisplayValue; }
在执行新增和修改前为sceneRegionalismCn赋值sceneRegionalismDisplayValue,具体参加上面submitAlarmInfo方法。至此再使用断点,查看后值存入成功。
增加表单校验:
<script language="javascript"> var sexDictHTML = '<ww:property value="sexDictHTML" escape="false"/>'; var a_fields = { 'alarmInfo.alarmTitle' : {'l':'警情标题','r':true,'t':'t_alarmTitle','max':50}, 'alarmInfo.alarmNo' : {'l':'警情受理号','r':true,'f':'alphanum','t':'t_alarmNo', 'max':30}, 'alarmInfo.alarmTime' : {'l':'接警时间','r':false,'f':'datetime','t':'t_alarmTime', 'max':30}, 'alarmInfo.alarmPropertyCn' : {'l':'案件性质','r':true,'t':'t_alarmPropertyCn','max':300}, 'alarmInfo.alarmDesc' : {'l':'简要案情','r':true,'t':'t_alarmDesc'}, 'alarmInfo.alarmReceiverName' : {'l':'接警人','r':true,'t':'t_alarmReceiverName','max':30}, '<span style="color:#3333ff;">sceneRegionalismDisplayValue</span>' : {'l':'发案区划','r':true,'t':'t_sceneRegionalism','max':30}, 'alarmInfo.alarmReceiverPhone' : {'l':'接警人联系电话','r':true,'f':'phoneMobile','t':'t_alarmReceiverPhone', 'max':20} }, o_config = { 'to_disable' : ['Submit'], 'alert' : 1 } var v = new validator('addAlarmInfoForm', a_fields, o_config); <script>
校验调用在saveOnClick()方法中,参见上面。至此功能完成。
相关文章推荐
- Error:java: Compilation failed: internal java compiler error
- java基础知识点梳理2
- java.lang.OutOfMemoryError: PermGen space 解决办法
- Java基于JavaMail实现向QQ邮箱发送邮件
- Run-Time Data Areas 运行时数据区
- JavaSE_Java字符串与日期类型 相互转换
- java基础知识点梳理1
- 使用Spring mvc接收整个url地址及参数时注意事项
- struts配置文件的formbean
- Spring整合JMS(一)——基于ActiveMQ实现
- spring jdbcTemplate 做持久层 并对其进行优化
- eclipse中gradle的使用
- java中得到图片的宽度 高度:
- Java简便开发必备——lombok
- java特种兵读书笔记(4-3)——java通信之IO与通信调度方式
- eclipse 和 jdk的位数不同
- 性能分析工具之-- Eclipse Memory Analyzer tool(MAT)
- 给开发者介绍一款可连接AS和Eclipse实现远程调试的工具
- Eclipse整合报错: One or more constraints have not been satisfied
- 逻辑 循环算数 左移 右移 和其在java中的应用