锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1.棣栧厛闇瑕佽В鍐崇殑鏄敱鏂囨湰鏄劇ず鐘舵佷笌TEXT妗嗚漿鎹㈢殑闂.鐢辨枃鏈樉紺哄埌緙栬緫妗嗚繖涓彲浠ラ氳繃淇敼瀵瑰簲瀵硅薄鐨刬nnerHTML鏉ヨВ鍐?鐢辯紪杈戞鍒囨崲鍒版枃鏈樉紺哄紑濮嬬敤鐨勬槸outerHTML鏉ヤ慨鏀圭殑(鍚庢潵鍙戠幇鏈夐棶棰?.
2.琛屽垏鎹㈢殑闂:褰撻夋嫨鐨勮鍋氫簡鍙樻崲鏃?濡傛灉鏁版嵁鍋氫簡鏇存敼涓旀湭鎻愪氦鐨勮瘽浠嶆樉紺烘湭淇敼鍓嶇殑鍊?榪欎釜鍦ㄩ〉闈腑鍔犲叆浜嗕竴涓殣钘忓煙,淇濆瓨閫変腑琛岀殑鏁版嵁.榪欓儴鍒嗘暟鎹彧鏄敤鏉ヤ復鏃朵繚瀛樻暟鎹殑,涓嶉渶瑕佹彁浜ゅ埌鍚庡彴,鏈寘鍚湪FORM涓?鍙槸緇欎簡涓涓狪D榪涜鍖哄垎;
3.閫変腑鐨勮騫朵笉鏄墍鏈夊瓧孌甸兘鏇存敼涓哄彲緙栬緫鐘舵?鍙湁閮ㄥ垎瀛楁闇瑕佹洿鏀?榪欓噷鍦ㄤ慨鏀筰nnerHTML鐨勬椂鍊欒繘琛屼簡鍒ゆ柇;
4.濡備綍涓嶧ORM涓殑灞炴у尮閰嶇殑闂:鍙互鍦ㄤ慨鏀筰nnerHTML鐨勬椂鍊欐寚瀹歯ame灝卞彲浠ヤ簡;
5.鍚庢潵鍦ㄦ帴涓嬫潵鐨勬祴璇曚腑,濡傛灉瀛楁涓瓨鍦℉TML瀛楃,閫氳繃outerHTML鏉ヨ祴鍊?嫻忚鍣ㄤ細瀵瑰畠榪涜瑙f瀽,騫朵笉鏄兂瑕佹樉紺虹殑淇℃伅.寮濮嬫煡JS鍑芥暟鐨勬椂鍊欏彂鐜頒簡escape涓?unescape,浠ヤ負浼氳繘琛岃嚜鍔ㄨ漿鎹㈢殑,鍚庢潵鍙戠幇騫墮潪濡傛.鍦ㄧ粡榪囧嚑鐣慨鏀逛箣鍚?鍙戠幇淇敼outerText灞炴у垯涓嶄細瀵硅祴鐨勫艱繘琛岃В鏋?
6.鐢變簬涓浜涢獙璇佹槸瀹氫箟鍦ㄥ悗鍙扮殑,鍙湁鎻愪氦鍒版湇鍔″櫒鍚庢墠浼氳繘琛屾牎楠?濡傛灉媯楠屼笉閫氳繃榪樿繑鍥炲綋鍓嶉〉闈?瑕佷繚鐣欐彁浜ゅ墠鐨勭姸鎬?榪欓噷鏄粰RadioButton涓涓狪D(鍚庡彴鏁版嵁琛ㄤ腑鐨勪富閿?.鎵懼埌瀵瑰簲鐨勮,鍐嶆妸鎶婂畠緗垚閫変腑鐘舵?鍚屾椂鐩稿簲鐨勫垪鏀逛負緙栬緫妗?
7.搴旇璇村埌榪欓噷鍩烘湰宸茬粡瀹屾垚浜?浣嗗湪鎻愪氦鍒版湇鍔″櫒鏍¢獙鍑洪敊鍚?榪斿洖鐨勯〉闈腑鏄劇ず鐨勪粛鐒舵槸緙栬緫鍓嶇殑鍊?鐢變簬欏甸潰鍋氫簡鍒鋒柊,闅愯棌鍩熺殑鍊煎凡緇忚閲嶇疆.濡傛灉鍐嶅垏鎹㈠埌鍏跺畠琛?鏄劇ず鐨勪粛鐒舵槸鐢ㄦ埛淇敼鍚庣殑鏁版嵁,榪欓儴鍒嗘暟鎹茍鏈垚鍔熸洿鏂板埌鍚庡彴,搴旇鏄劇ず鎴愪慨鏀瑰墠鐨勬暟鎹?榪欓噷閫氳繃Request浼犲洖鍒伴〉闈腑,鍦ㄨЕ鍙戝搴旂殑RadioButton鍚庡啀鎶婂艱祴鍒伴殣钘忓煙涓?
閮ㄥ垎浠g爜濡備笅:
<script language="JavaScript" type="text/javascript">
//Get parent node.
window.SearchByTagName = function(e, TAG) {
while(e!=null && e.tagName){
if(e.tagName==TAG.toUpperCase()) {
return(e);
}
e = e.parentNode;
}
return null;
}
var selectedRow = -1; //global
function selectChanged(e) {
var td = SearchByTagName(e, "TD");
var tr = td.parentNode;
var tab = SearchByTagName(tr, "TABLE");
var cellValue = "";
//Reset the cell's value.
if(selectedRow>=0) {
for(var i=td.cellIndex+1; i<tab.rows[selectedRow].cells.length; i++) {
var a = tab.rows[selectedRow].cells[i].getElementsByTagName("INPUT");
for(var k=0; k<a.length; k++) {
if(a[k].type=="text") {
//Valid only in IE.
a[k].outerText = document.getElementById(a[k].name).value;
}
}
}
}
selectedRow = tr.rowIndex;
//Change the cell into text,and save the value into hidden field.
var hyoujijunCell = document.getElementById("hyoujijun" + selectedRow);
var ryakusyouCell = document.getElementById("ryakusyou" + selectedRow);
var nameCell = document.getElementById("name" + selectedRow);
document.getElementById("hyoujijun").value=rtrim(hyoujijunCell.innerText);
document.getElementById("hyoujijun" + selectedRow).innerHTML =
"<input type='text' name='hyoujijun' maxlength='3' style='width:80px' value='" +
rtrim(hyoujijunCell.innerHTML) +"'>";
document.getElementById("ryakusyou").value=rtrim(ryakusyouCell.innerText);
document.getElementById("ryakusyou" + selectedRow).innerHTML =
"<input type='text' name='ryakusyou' maxlength='4' style='width:60px' value='" +
rtrim(ryakusyouCell.innerHTML) +"'>";
document.getElementById("name").value= rtrim(nameCell.innerText);
document.getElementById("name" + selectedRow).innerHTML =
"<input name='name' maxlength='100' style='width:300px' value='" +
rtrim(nameCell.innerHTML) +"'>";
}
function validReturn() {
if ( <%=selectedMasterID%> > 0) {
//Get the selected row,and select it.
var radioSn = document.getElementById("masterid<%=selectedMasterID%>");
radioSn.click( );
//Save original value.If changed other row,restore data as before modified.
document.getElementById("hyoujijun").value = "<%=hyoujijunReturn%>";
document.getElementById("name").value = "<%=nameReturn%>";
document.getElementById("ryakusyou").value = "<%=ryakusyouReturn%>";
}
}
//Clear the last blank.
function rtrim(cellValue) {
if (cellValue.lastIndexOf(" ") >= 0) {
cellValue = cellValue.substr(0,cellValue.lastIndexOf(" "));
}
return cellValue;
}
</script>
<body class="gyomu" onload="validReturn()">
<table>
<logic:present name="masterList">
<logic:iterate id="element" indexId="index" name="masterList">
<tr>
<td class="meisai" style="width: 50px">
<logic:notEqual name="element" property="sakujyo" value="DELETE">
<input type="radio" name="masterid"
value="<bean:write name='element' property='masterid'/>"
onclick="selectChanged(this)" id="masterid<bean:write name='element' property='masterid'/>" />
<%rowCount++;%>
</logic:notEqual>
</td>
<td class="meisai" style="width: 80px" id="hyoujijun<%=index%>">
<bean:write name="element" property="hyoujijun" />
</td>
<td class="meisai" style="width: 60px" id="cd<%=index%>">
<bean:write name="element" property="cd" />
</td>
<td class="meisai" style="width: 300px" id="name<%=index%>">
<bean:write name="element" property="name" />
</td>
<logic:equal name="needShortName" value="true">
<td class="meisai" style="width: 60px" id="ryakusyou<%=index%>">
<bean:write name="element" property="ryakusyou" />
</td>
</logic:equal>
<td class="meisai" style="width: 70px" id="sakujyo<%=index%>">
<bean:write name="element" property="sakujyo" />
</td>
</tr>
</logic:iterate>
</logic:present>
</table>
</body>
pageContext
- PageContext for the tag making this call
forward
- Logical forward name for which to look up the context-relative URI (if specified)
href
- URL to be utilized unmodified (if specified)
page
- Module-relative page for which a URL should be created (if specified)
action
- Logical action name for which to look up the context-relative URI (if specified)
params
- Map of parameters to be dynamically included (if any)
anchor
- Anchor to be dynamically included (if any)
redirect
- Is this URL for a response.sendRedirect(
涓嬮潰浠嬬粛涓涓嬭緇嗙殑浣跨敤鏂規硶:
1.鍦↗SP欏甸潰涓鍏ュ搴旂殑鍖?
<%@ page import= "org.apache.struts.util.RequestUtils"%>
鎴?BR><%@ page import= "org.apache.struts.taglib.TagUtils"%>
2.鍒涘緩涓涓狫AVASCRIPT鍑芥暟:
<script language="JavaScript" type="text/javascript">
function search() {
<%String searchUrl = RequestUtils.computeURL(
pageContext,
null,
null,
"/Search.do",
null,
null,
null,
false);
%>
document.form1.action = "<%=searchUrl%>";
document.form1.submit();
}
</script>
3.鍦↗SP欏甸潰涓粰瀵瑰簲鐨勮〃鍗曟寚瀹欼D浠ヤ究涓婇潰鐨勫嚱鏁拌繘琛岀‘瀹氭彁浜ょ殑鏄摢涓狥ORM(濡傛灉涓涓〉闈㈠湪瀛樺湪澶氫釜FORM鐨勮瘽):
<html:form styleId="form1" action="/aotherSearch">
.........
</html:form>
4.鍦ㄩ渶瑕佽Е鍙戞彁浜ゅ姩浣滅殑鍦版柟,璋冪敤2涓殑JAVASCRIPT鍑芥暟:
<html:button property="searchInfo" value="媯绱? onclick="search()" style="width:100px" />
瀵瑰簲鐨凙CTION涓嶧ORM鍦ㄩ厤緗枃浠朵腑瀹氫箟.榪欐牱,灝卞彲浠ュ姩鎬佹洿鏀笷ORM鐨凙CTION瀹炵幇涓涓狥ORM瀵瑰簲澶氫釜ACTION浜?