struts JSP表單數據的顯示和回顯


1.鏈接

1)<a href="${pageContext.request.contextPath}/visit/add.action  />

2)<a href="${pageContext.request.contextPath }/customer/edit?cust_id=<s:property value="#customer.cust_id" />"

 onclick="return window.confirm('你確認刪除么')">修改</a>//回顯數據后提交

2.普通的標簽

//普通標簽的save
<s:textfield class="textbox" 
style="width: 180px" maxlength="50" name="cust_mobile" /></td>
//普通標簽查詢之后save失敗會自動回顯
//普通標簽查詢后從值棧中取值
//push(對象) 里面有list這個屬性
<s:iterator var="customer" value="list">
<s:property value="#customer.cust_name"/> 
</s:iterator>

 

3.radio

//性別save
<s:radio name="lkm_gender" list="#{1:'男',2:'女'}" />
//save失敗會自動回顯
<s:radio name="lkm_gender" list="#{1:'男',2:'女'}" />
//因為性別存入數據庫的是1,2所以查詢的時候要顯示
//push.set(pageBean)分頁,list是屬性
<s:iterator var="lk" value="list">   
<s:if test="#lk.lkm_gender==1">男
</s:if><s:elseif test="#lk.lkm_gender==2"> 女 </s:elseif> //或者 ${lk.lkm_gender}也可以取到值 </s:iterator>

4.復選框

1)數據結構一對多用到字典表

保存數據庫里的數據                                                  
//customer和客戶級別是多對一用到的是字典表
/1.客戶
public class Customer {
private long cust_id;
private BaseDict cust_industry;  // cust_industry int 客戶所屬行業  
private BaseDict cust_level;    // cust_level int 客戶級別。
public BaseDict getCust_industry() {
        return cust_industry;
    }
    public void setCust_industry(BaseDict cust_industry) {
        this.cust_industry = cust_industry;
    }
    public BaseDict getCust_level() {
        return cust_level;
    }
    public void setCust_level(BaseDict cust_level) {
        this.cust_level = cust_level;
    }
}  
 
1    001    黃金客戶
2    001    普通客戶
3    002    房產
4    002    金融


//2.字典表
public class BaseDict {
private Long dict_id;//id           
private String dict_type_code;//對應的偽id比如001
private String dict_type_name; //對應的值比如 黃金客戶,普通客戶
public String getDict_type_code() {                    
    return dict_type_code;                             
}                                                      
public void setDict_type_code(String dict_type_code) { 
    this.dict_type_code = dict_type_code;              
}                                                      
public String getDict_type_name() {                    
    return dict_type_name;                             
}                                                      
public void setDict_type_name(String dict_type_name) { 
    this.dict_type_name = dict_type_name;              
}                                                          
     }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式1.先展示數據下拉菜單的數據異步請求的方式
1.先查詢后存入到值棧中json異步請求//////////////////////////////////////////////////////////////////////////////////////////////////

<script type="text/javascript">
function loadDict(typedata, selectId) {
//當頁面加載成功后
var url = "${pageContext.request.contextPath }/customer/dict.action";
var data = {
"dict_type_code" : typedata
};
//將返回來的數據給寫回到到頁面上
var callback = function(data) {
$(data)
.each(
function(i, value) {
var id = value.dict_id;
var itemName = value.dict_item_name;
var sid = $("#" + selectId + "Data").attr(
"data");//做一個標記
console.log(sid);
var option;
if (id == sid) {//數據回顯...
option = "<option value="+id+" selected='selected'>"
+ itemName + "</option>";
} else {
option = "<option value="+id+">" + itemName
+ "</option>";
}
//添加到
$("#" + selectId).append(option);
});
};
$.post(url, data, callback, "json");
}
$(function($) {
loadDict("002", "level");//客戶級別

loadDict("001", "industry")//客戶行業
});
</script>

2.請求到action/////////////////////////////////////////////////////////////////////////////////

/**
* 異步查詢根據字典表查詢
* 
* @return
*/

private List<BaseDict> jsonDict;
private String dict_type_code;

public List<BaseDict> getJsonDict() { 
return jsonDict; 
} 

public void setJsonDict(List<BaseDict> jsonDict) { 
this.jsonDict = jsonDict; 
} 

public String getDict_type_code() { 
return dict_type_code; 
} 

public void setDict_type_code(String dict_type_code) { 
this.dict_type_code = dict_type_code; 
}
//////////////////////////////////////////////////////////
public String do_dict() {


// 離線條件查詢
DetachedCriteria criteria = DetachedCriteria.forClass(BaseDict.class);
criteria.add(Restrictions.eq("dict_type_code", dict_type_code));
jsonDict = baseDictService.find(criteria);//返回json對象
return DICT_SUCCESS;
}

3.struts配置//////////////////////////////////////////////////

<result name="dict_success" type="json">
<param name="root">jsonDict</param> 
</result>

4.json返回取值////////////////////////////////////////////////////////////

<td >客戶級別 :</td> 
<td id='levelData' data='<s:property value="cust_level.dict_id" />'>
<select class="textbox" id="level" 
style="width: 180px; height: 21px" maxlength="50" 
name="cust_level.dict_id"> 
<option value="0">請選擇</option> 
</select></td>

<td id="industryData" 
data="<s:property value='cust_industry.dict_id' />">所屬行業 
:</td> 
<td><select class="textbox" id="industry" 
style="width: 180px; height: 21px" maxlength="50" 
name="cust_industry.dict_id"> 
<option value="0">請選擇</option> 
</select></td>

//save到數據庫

 

方式二:請求來的時候先查詢數據庫存入到值棧中后在jsp中取值///////////////////////////////////////////////////////////////////////////////////////////

流程:1.添加鏈接--2.>findAll()-->3.add.jsp(添加頁面)---4.save()

2.action////////////////////////////////////////////////

public String do_add() {
DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
List<Customer> list = customerService.findAll(criteria);
ValueStack stack = ActionContext.getContext().getValueStack();
stack.set("customers", list);
return ADD_SUCCESS;
}

3.add.jsp////////////////////////////////////////////////

<td>所屬客戶:</td> 
<td colspan="3"><select name="customer.cust_id" 
class="textbox" style="width: 180px; height: 21px;"> 
<!-- <option value=0>請選擇</option> --> //#是遍歷取值
<s:iterator var="customer" value="customers"> //不加#是從值棧中取值
<s:if test="customer.cust_id==#customer.cust_id"> 
<option value='<s:property value="#customer.cust_id"/>' 
selected="selected"> 
<s:property value="#customer.cust_name" /> 
</option> 
</s:if> 
<s:else> 
<option value='<s:property value="#customer.cust_id"/>'> 
<s:property value="#customer.cust_name" /> 
</option> 
</s:else> 
</s:iterator> 
</select> 

4.執行save()保存到數據庫////////////////////////////////////////////

5.1.修改數據表單的數據相似將id傳過去后,

2.查詢customer的所有的屬性, push 查詢的是一個對象

3.查詢關聯的所有對象,要讓客戶去選.stack.set("list",list);

4.在jsp中取值.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM