金甲防線服務項目筆記:新增、編輯與刪除
阿新 • • 發佈:2017-09-07
trac topo 新增功能 mit inside col else res its
一、新增:
//添加序列號
function addSerialNumber(obj){
var type = $("input[name=‘serialNumber‘]:checked").val();
showWindow($(obj).attr("title"),"genuineSerialNumberManagementAction_addUI.do?genuineSerialNumberManagement.type="+type,"500","320",true);
}
1、後臺新增:由於需要傳入type來辨別是正版還是非正版,所以在 addUI 上需要將type get出來,然後傳給前臺頁面,前臺頁面通過下面這樣去獲取
var type = ‘<s:property value="genuineSerialNumberManagement.type"></s:property>‘;
//新增序列號UI
public String addUI(){
if(genuineSerialNumberManagement.getType() != null && !"".equals(genuineSerialNumberManagement.getType())){
getRequest().setAttribute("type ", genuineSerialNumberManagement.getType());
}
return RETURN_ADDUI;
}
2、addUI頁面:表單裏面需要加上隱藏域,否則後臺那邊收不到值
<form id="genuineSerialNumberManagementAction_add">
<table id="itemTable" align="center">
<tr><input type="hidden" id="type" name=" genuineSerialNumberManagement.type"></tr>
<tr><input type="hidden" id="softId" name="genuineSerialNumberManagement.softId"></tr>
<tr>
<td class="rightAlign"><label>軟件名:</label></td>
<td><input type="text" id="softDisplayName" name="genuineSerialNumberManagement.softDisplayName" class="inputText {required:true}" /> <label id=‘requiredLabel‘>*</label></td>
</tr>
<tr>
<td class="rightAlign"><label>版本號:</label></td>
<td><input type="text" id="version" name="genuineSerialNumberManagement.version" class="inputText {required:true}" /> <label id=‘requiredLabel‘>*</label></td>
</tr>
<tr>
<td class="rightAlign"><label>序列號:</label></td>
<td><input type="text" id="serialNumber" name="genuineSerialNumberManagement.serialNumber" class="inputText {required:true}" /> <label id=‘requiredLabel‘>*</label></td>
</tr>
<tr style="line-height: 60px;">
<td colspan="2" align="center">
<button class="layerButton" id="buttonSubmit">
<span>提交</span>
</button>
<button class="layerButton" id="closeBT">
<span>取消</span>
</button>
</td>
</tr>
</table>
</form>
$(function(){
var type = ‘<s:property value="genuineSerialNumberManagement.type"></s:property>‘;
$("#type").val(type);
$("#softId").val(11223344);
$("#buttonSubmit").click(function(){
var softDisplayName = $("#softDisplayName").val(),
version = $("#version").val(),
softId = $("#serialNumber").val(),
type = $("#type").val(),
serialNumber = $("#serialNumber").val();
$("#genuineSerialNumberManagementAction_add").form("submit",{
method : "POST",
url : "genuineSerialNumberManagementAction_add.do?disc=genuineSerialNumberManagement_add&genuineSerialNumberManagement.softDisplayName="
+ escape(escape(softDisplayName)) + "&genuineSerialNumberManagement.version=" + escape(escape(version))
+ "&genuineSerialNumberManagement.serialNumber=" + escape(escape(serialNumber))
+ "&genuineSerialNumberManagement.type=" + type
+ "&genuineSerialNumberManagement.softId=" + softId,
timeout : 3000000,
success : function(data){
var jsondata = eval("(" + data + ")");
if(jsondata.msg == ‘success‘){
if(type == 1){
getDeskTopObj().$(‘#inside_tableElement‘).datagrid(‘insertRow‘,{
index:0,
row: {
id : jsondata.id,
softDisplayName : jsondata.softDisplayName,
version : jsondata.version,
serialNumber : jsondata.serialNumber
}
});
}else{
getDeskTopObj().$(‘#inside_tableElement_no‘).datagrid(‘insertRow‘,{
index:0,
row: {
id : jsondata.id,
softDisplayName : jsondata.softDisplayName,
version : jsondata.version,
serialNumber : jsondata.serialNumber
}
});
}
showMsg("", "添加成功!", true);
}else{
showMsg("", "添加失敗!", false);
}
}
})
return false;//禁止表單提交事件,防止2次請求
})
});
註意表單提交的時候因為有默認的submit,所以請求會提交2次,需要阻止表單的默認提交事件。
3、後臺新增功能:
//新增序列號
public void add(){
log.info("【正版序列號管理--新增序列號:開始】");
this.msg = RESULT_FAIL;
GenuineSerialNumberManagement temp = null;
String resultInfo = "";
try {
this.msg = RESULT_FAIL;
if(genuineSerialNumberManagement.getSoftDisplayName() != null && !"".equals(genuineSerialNumberManagement.getSoftDisplayName())){
genuineSerialNumberManagement.setSoftDisplayName(EscapeUnescape.unescape(genuineSerialNumberManagement.getSoftDisplayName()));
}
if(genuineSerialNumberManagement.getVersion() != null && !"".equals(genuineSerialNumberManagement.getVersion())){
genuineSerialNumberManagement.setVersion(EscapeUnescape.unescape(genuineSerialNumberManagement.getVersion()));
}
if(genuineSerialNumberManagement.getSerialNumber() != null && !"".equals(genuineSerialNumberManagement.getSerialNumber())){
genuineSerialNumberManagement.setSerialNumber(EscapeUnescape.unescape(genuineSerialNumberManagement.getSerialNumber()));
}
if(genuineSerialNumberManagement.getType() != null && !"".equals(genuineSerialNumberManagement.getType())){
genuineSerialNumberManagement.setType(genuineSerialNumberManagement.getType());
}
if(genuineSerialNumberManagement.getSoftId() != null && !"".equals(genuineSerialNumberManagement.getSoftId())){
genuineSerialNumberManagement.setSoftId(genuineSerialNumberManagement.getSoftId());
}
genuineSerialNumberManagementService.save(genuineSerialNumberManagement);
//自動生成xml
genuineSerialNumberManagementService.createXML();
this.msg = RESULT_SUCCESS;
temp = (GenuineSerialNumberManagement)BeanUtils.cloneBean(genuineSerialNumberManagement);
temp.setId(genuineSerialNumberManagement.getId());
resultInfo = "{\"msg\":\""+ this.msg +"\","
+ "\"id\":\"" + temp.getId() +"\","
+ "\"softDisplayName\":\"" + temp.getSoftDisplayName() +"\","
+ "\"version\":\"" + temp.getVersion() +"\","
+ "\"serialNumber\":\"" + temp.getSerialNumber()+"\"}";
} catch (Exception e) {
log.info("【正版序列號管理--新增序列號:新增失敗】");
this.msg = RESULT_FAIL;
e.printStackTrace();
}finally{
print(resultInfo);
log.info("【正版序列號管理--新增序列號:結束】");
}
}
二、編輯:
//修改序列號
function editSerialNumber(obj){
var type = $(‘input[name="serialNumber"]:checked‘).val();
if(type == 1){
var rows = $("#inside_tableElement").datagrid(‘getSelections‘);
}else{
var rows = $("#inside_tableElement_no").datagrid(‘getSelections‘);
}
if (rows.length < 1) {
showAlertDialog("信息確認", "請選取記錄!");
} else if (rows.length > 1) {
showAlertDialog("信息確認", "目前只支持單條記錄刪除,請去掉多選項!");
} else {
showWindow($(obj).attr("title"),"genuineSerialNumberManagementAction_editUI.do?genuineSerialNumberManagement.id="+rows[0].id,"500","320",true);
}
}
註意:編輯表單裏面需要加上id,並且每行加上value,設置為庫裏的值,這樣編輯的時候不至於為空
<form id="genuineSerialNumberManagementAction_edit">
<!-- ID -->
<input id="id" type="hidden" name="genuineSerialNumberManagement.id" value="<s:property value=‘genuineSerialNumberManagement.id‘/>">
<table id="itemTable" align="center">
<tr></tr>
<tr></tr>
<tr>
<td class="rightAlign"><label>軟件名:</label></td>
<td><input type="text" id="softDisplayName" name="genuineSerialNumberManagement.softDisplayName"
value="<s:property value=‘genuineSerialNumberManagement.softDisplayName‘ />" class="inputText {required:true}" /> <label id=‘requiredLabel‘>*</label></td>
</tr>
<tr>
<td class="rightAlign"><label>版本號:</label></td>
<td><input type="text" id="version" name="genuineSerialNumberManagement.version"
value="<s:property value=‘genuineSerialNumberManagement.version‘ />" class="inputText {required:true}" /> <label id=‘requiredLabel‘>*</label></td>
</tr>
<tr>
<td class="rightAlign"><label>序列號:</label></td>
<td><input type="text" id="serialNumber" name="genuineSerialNumberManagement.serialNumber"
value="<s:property value=‘genuineSerialNumberManagement.serialNumber‘ />" class="inputText {required:true}" /> <label id=‘requiredLabel‘>*</label></td>
</tr>
<tr style="line-height: 60px;">
<td colspan="2" align="center">
<button class="layerButton" id="buttonSubmit">
<span>提交</span>
</button>
<button class="layerButton" id="closeBT">
<span>取消</span>
</button>
</td>
</tr>
</table>
</form>
$(function(){
$("#buttonSubmit").click(function(){
$.doAjax({
isSend : $("#genuineSerialNumberManagementAction_edit").valid(),
url : "${basePath}/genuineSerialNumberManagementAction_edit.do",
//dataType:"json",
data : $("#genuineSerialNumberManagementAction_edit").serialize(),
success : function(data) {
if (data == ‘success‘) {
getDeskTopObj().editRow( {
softDisplayName : $("#softDisplayName").val(),
version : $("#version").val(),
serialNumber : $("#serialNumber").val()
});
showMsg("", "修改成功!", true);
} else {
showMsg("", "修改失敗!", false);
}
},
error : function() {
showMsg("", "修改失敗!", false);
}
});
return false;
});
});
編輯後臺方法:通過id去查找到數據,然後把查到的數據更新為頁面傳過來的數據
//修改序列號
public void edit() {
log.info("【正版序列號管理--修改序列號:開始】");
this.msg = RESULT_FAIL;
try {
this.msg = RESULT_FAIL;
if (genuineSerialNumberManagement != null) {
GenuineSerialNumberManagement findGenuineSerialNumberManagement = genuineSerialNumberManagementService.queryById(genuineSerialNumberManagement.getId());
if (findGenuineSerialNumberManagement != null) {
findGenuineSerialNumberManagement.setSoftDisplayName(genuineSerialNumberManagement.getSoftDisplayName());
findGenuineSerialNumberManagement.setVersion(genuineSerialNumberManagement.getVersion());
findGenuineSerialNumberManagement.setSerialNumber(genuineSerialNumberManagement.getSerialNumber());
genuineSerialNumberManagementService.update(findGenuineSerialNumberManagement);
//自動生成xml,刪除原有的重新生成
genuineSerialNumberManagementService.createXML();
this.msg = RESULT_SUCCESS;
}
}
} catch (Exception e) {
this.msg = RESULT_ERROR;
log.error("【正版序列號管理--修改序列號:修改失敗】", e);
}finally{
print(this.msg);
log.info("【正版序列號管理--修改序列號:結束】");
}
}
三、刪除
//刪除序列號
function deleteSerialNumber(obj){
var type = $(‘input[name="serialNumber"]:checked‘).val();
var $table;
if(type == 1){
var trIds = getSelectedIds("#inside_tableElement");
$table = $("#inside_tableElement");
}else{
var trIds = getSelectedIds("#inside_tableElement_no");
$table = $("#inside_tableElement_no");
}
if (checkRecordSize(trIds, false)) {
var title = $(obj).attr("title");
showConfirmDialog(title, "刪除後數據將無法恢復,您確定要刪除嗎?", function() {
$.doAjax({
url : "${basePath}/genuineSerialNumberManagementAction_delete.do",
data : {
"selectedIds" : trIds.join(";")
},
success : function(data) {
if (data == ‘success‘) {
deleteRows();
showMsg("", "刪除成功!", true);
$table.datagrid("reload");
}else{
showMsg("", "刪除失敗!", false);
}
},
error : function() {
showMsg("", "刪除失敗!", false);
}
});
});
}
}
//獲取選中行的id
function getSelectedIds(id){
var ids = [];
var rows = $(id).datagrid(‘getSelections‘);
for(var i=0;i<rows.length;i++){
ids.push( jQuery.trim( rows[i].id ) );
}
return ids;
}
後臺刪除方法:
//刪除序列號
public void delete() {
log.info("【正版序列號管理--刪除序列號:開始】");
this.msg = RESULT_FAIL;
try {
this.msg = RESULT_FAIL;
Integer[] ids = new Integer[selectedIds.split(";").length];
if (selectedIds.length() > 0) {
String[] delIds = new String[selectedIds.split(";").length];//聲明一個數組保存要刪除的id
for (int i = 0; i < selectedIds.split(";").length; i++) {
delIds[i] = selectedIds.split(";")[i];
ids[i] = Integer.parseInt(String.valueOf(delIds[i]));
}
genuineSerialNumberManagementService.deleteByIds(ids);
// 自動生成xml,刪除原有的重新生成
genuineSerialNumberManagementService.createXML();
this.msg = RESULT_SUCCESS;
}
} catch (Exception e) {
this.msg = RESULT_ERROR;
log.error("【正版序列號管理--刪除序列號:刪除失敗】", e);
} finally {
print(this.msg);
log.info("【正版序列號管理--刪除序列號:結束】");
}
}
我們可以看下deleteByIds,繼承自BaseService,實現於BaseServiceImpl
@Override
public void deleteByIds(Integer[] ids) {
if (ids != null && ids.length == 1) {
baseDao.delete(ids[0]);
} else if (ids != null && ids.length > 0) {
baseDao.deleteByIds(ids);
}
}
@Override
public void deleteByIds(Integer[] ids) {
this.getSession().createQuery(" DELETE " + this.clazz.getName() + " this WHERE this.id IN(:ids) ")//
.setParameterList("ids", ids)//
.executeUpdate();
}
金甲防線服務項目筆記:新增、編輯與刪除