MyEclipse使用技巧之通过断点看值是否存入action中

在页面中新”案发区划“栏:

  <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" οnclick="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");'οnkeyup='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" οnclick="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()方法中,参见上面。至此功能完成。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值