锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
--------------------------
EmployeeAction <-- AbstractCRUDAction (web 灞?
聽聽 ^
聽聽 |
EmployeeDao <-- AbstractDao <-- Dao (Domain 灞傦紝demo涓篃浣滀負(fù)service瀛樺湪浜巗pring瀹瑰櫒涓?
聽聽 ^
聽聽 |
Employee <--IDEntity
--------------------------
struts.xml 閰嶇疆
聽聽聽 <package name="skill" extends="default" namespace="/skill">
聽聽聽聽聽聽聽 <default-interceptor-ref name="crudStack"/>
聽聽聽聽聽聽聽 <action name="list" class="org.apache.struts2.showcase.action.SkillAction" method="list">
聽聽聽聽聽聽聽聽聽聽聽 <result>/empmanager/listSkills.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="basicStack"/>
聽聽聽聽聽聽聽 </action>
聽聽聽聽聽聽聽 <action name="edit" class="org.apache.struts2.showcase.action.SkillAction">
聽聽聽聽聽聽聽聽聽聽聽 <result>/empmanager/editSkill.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="params" />
聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="basicStack"/>
聽聽聽聽聽聽聽 </action>
聽聽聽聽聽聽聽 <action name="save" class="org.apache.struts2.showcase.action.SkillAction" method="save">
聽聽聽聽聽聽聽聽聽聽聽 <result name="input">/empmanager/editSkill.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <result type="redirect">edit.action?skillName=${currentSkill.name}</result>
聽聽聽聽聽聽聽 </action>
聽聽聽聽聽聽聽 <action name="delete" class="org.apache.struts2.showcase.action.SkillAction" method="delete">
聽聽聽聽聽聽聽聽聽聽聽 <result name="error">/empmanager/editSkill.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <result type="redirect">edit.action?skillName=${currentSkill.name}</result>聽 榪欓噷灞曠幇浜?jiǎn)struts2鍏鋒湁鑹ソ鐨剈rl鐗規(guī)э紝姣旇搗ww鐨刢rud!edit璁╀漢鑸掓湇澶氫簡(jiǎn)
聽聽聽聽聽聽聽 </action>
聽聽聽 </package>
聽聽聽 <package name="employee" extends="default" namespace="/employee">
聽聽聽聽聽聽聽 <default-interceptor-ref name="crudStack"/>
聽聽聽聽聽聽聽 <action name="list" class="org.apache.struts2.showcase.action.EmployeeAction" method="list">
聽聽聽聽聽聽聽聽聽聽聽 <result>/empmanager/listEmployees.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="basicStack"/>
聽聽聽聽聽聽聽 </action>
聽聽聽聽聽聽聽 <action name="edit-*" class="org.apache.struts2.showcase.action.EmployeeAction">
聽聽聽聽聽聽聽聽 <param name="empId">{1}</param>
聽聽聽聽聽聽聽聽聽聽聽 <result>/empmanager/editEmployee.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <interceptor-ref name="crudStack"><param name="validation.excludeMethods">execute</param></interceptor-ref>
聽聽聽聽聽聽聽 </action>
聽聽聽聽聽聽聽 <action name="save" class="org.apache.struts2.showcase.action.EmployeeAction" method="save">
聽聽聽聽聽聽聽聽聽聽聽 <result name="input">/empmanager/editEmployee.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <result type="redirect">edit-${currentEmployee.empId}.action</result>
聽聽聽聽聽聽聽 </action>
聽聽聽聽聽聽聽 <action name="delete" class="org.apache.struts2.showcase.action.EmployeeAction" method="delete">
聽聽聽聽聽聽聽聽聽聽聽 <result name="error">/empmanager/editEmployee.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽 <result type="redirect">edit-${currentEmployee.empId}.action</result>
聽聽聽聽聽聽聽 </action>
聽聽聽 </package>
聽聽聽
-----------------------------
姣忎竴涓猘ction鏈夎嚜宸辯殑properties鏂囦歡錛岄潪甯鎬究浜庣鐞嗗拰浠g爜鐢熸垚錛?br />褰撶劧涔熸湁涓涓叏灞鐨刧lobalMessages.properties鏉ュ瓨鏀句竴浜泂ave,delete榪欎簺閮戒竴鏍風(fēng)殑瀛楃
employee=Employee
employee.firstName=First Name
employee.lastName=Last Name
employee.description=Description
employee.id.required=Id is required
employee.lastName.required=Last Name is required
employee.birthDate.required=Birthdate is required
employee.backtolist=Back to Employee List
姣忎釜action鑷繁鐨剉alidation
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "<validators>
聽聽聽 <!-- Field-Validator Syntax -->
聽聽聽 <field name="currentEmployee.empId">
聽聽聽聽聽聽聽 <field-validator type="required">
聽聽聽聽聽聽聽聽聽聽聽 <message key="employee.id.required"/>
聽聽聽聽聽聽聽 </field-validator>
聽聽聽 </field>
聽聽聽 <field name="currentEmployee.lastName">
聽聽聽聽聽聽聽 <field-validator type="requiredstring">
聽聽聽聽聽聽聽聽聽聽聽 <param name="trim">true</param>
聽聽聽聽聽聽聽聽聽聽聽 <message key="employee.lastName.required"/>
聽聽聽聽聽聽聽 </field-validator>
聽聽聽 </field>
聽聽聽 <field name="currentEmployee.birthDate">
聽聽聽聽聽聽聽 <field-validator type="required">
聽聽聽聽聽聽聽聽聽聽聽 <message key="employee.birthDate.required"/>
聽聽聽聽聽聽聽 </field-validator>
聽聽聽 </field>
</validators>
--------------------------------
DAO鏄痵pring鐨刡ean,spring榛樿浣滀負(fù)struts2鐨勪笟鍔$粍浠跺鍣?br />鍦╯truts.properties涓璼truts.objectFactory = spring
鐢變簬榪欓噷鏄痑utowire錛孉utowiring means to look for objects defined in Spring with the same name as your object property
鎵浠ction涓墍鏈夌敤鍒癐oC鐨勫湴鏂癸紝閮戒細(xì)鑷姩娉ㄥ叆錛堝洜涓篴ction鏈川涔熸槸bean錛屼笅闈細(xì)璁插埌錛?/p>
<beans default-autowire="byName"> wire鏈夊洓縐嶆柟娉曪細(xì)name錛?type錛?auto錛?constructor
聽聽聽 <bean id="skillDao" class="org.apache.struts2.showcase.dao.SkillDao"/>
聽聽聽 <bean id="employeeDao" class="org.apache.struts2.showcase.dao.EmployeeDao"/>
聽聽聽
----------------------------------
struts2涓殑姣忎竴涓猘ction,涔熷氨鏄痵truts.xml閲岄潰澹版槑鐨刟ction,鏈緇堥兘灝嗕綔涓簊pring涓殑涓涓猙ean瀹屾垚璇鋒眰銆?br />濡傛灉浣犱笉鍋氶澶栫殑璁懼畾錛宻truts2浼?xì)鑷姩鐢熸垚杩欎釜bean銆?br />濡傛灉浣犳湁鐗規(guī)畩鐨勯渶瑕侊紝榪樺彲浠ュ湪applicationContext.xml鑷繁澹版槑榪欎釜bean
浣犲繀欏繪牴鎹渶瑕佹潵鍐沖畾鏄惁鍐嶆澹版槑
struts.xml
<!DOCTYPE struts PUBLIC
聽聽聽 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
聽聽聽 "<struts>
聽聽聽 <include file="struts-default.xml"/>
聽聽聽 <package name="default" extends="struts-default">
聽聽聽聽聽聽聽 <action name="foo" class="com.acme.Foo">聽 榪欎釜foo錛屽湪applicationConext.xml涓病鏈夊0鏄庯紝struts浼?xì)鑷姩鐢熸垚涓涓猙ean
聽聽聽聽聽聽聽聽聽聽聽 <result>foo.ftl</result>
聽聽聽聽聽聽聽 </action>
聽聽聽 </package>
聽聽聽 <package name="secure" namespace="/secure" extends="default">
聽聽聽聽聽聽聽 <action name="bar" class="bar">聽聽聽聽聽聽聽聽聽聽 榪欎釜foo錛屽湪applicationConext.xml涓0鏄庝簡(jiǎn)錛宻truts浼?xì)鋴社敤涓嬮潰閰嵕|?br />聽聽聽聽聽聽聽聽聽聽聽 <result>bar.ftl</result>
聽聽聽聽聽聽聽 </action>
聽聽聽 </package>
</struts>
applicationConext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "<beans default-autowire="autodetect">
聽聽聽 <bean id="bar" class="com.my.BarClass" singleton="false"/>
聽聽聽 ...
</beans>
-------------------------
鏃犵紳闆嗘垚ajax
鍙澹版槑浜?jiǎn)theme="ajax"錛岃鏍囩鎺т歡鐨勬搷浣滃氨琚漿鎹㈡垚ajax錛岃姹傚彂閫佸埌AjaxRemoteForm
Configured Editor configuration:
<s:form id="form2" action="AjaxRemoteForm" method="post">
聽聽聽 <s:textarea id="editor2" name="data" theme="ajax" cols="50" rows="10" value="Test Data 2">
聽聽聽聽聽聽聽 <s:param name="editorControls">textGroup;|;justifyGroup;|;listGroup;|;indentGroup</s:param>
聽聽聽 </s:textarea>
聽聽聽 <s:submit value="Submit"/>
</s:form>
------------------------
闆嗘垚浜?jiǎn)澶毧U嶆ā鏉?br />jsp,velocity,freemaker
------------------------
struts2 緇ф壙浜?jiǎn)ww2鐨勪紭鑹紶緇燂紝騫朵笖鎽堝純浜?jiǎn)ww2鐨勪竴浜涚己闄鳳紝涔熷彲浠ョ湅鎴愭槸瀵箇w2鐨勪竴嬈¢噸璐?br />鏃犵枒鏄洰鍓嶆渶涓繪祦錛屾渶寮哄ぇ鐨凪VC妗嗘灦浜?jiǎn)銆?/p>
瀹冨疄鐜頒簡(jiǎn)鍜宻pring鐨勫畬緹庣粨鍚?/p>
闆嗘垚浜?jiǎn)ajax錛坉ojo+dwr錛?/p>
鍏舵彃浠舵敮鎸乯asperreports錛宩freechart
}
objCell=objRow.insertCell(18);
objCell.innerHTML=objSourceRow.cells[18].innerHTML.replace(/澧炲姞璇︾粏浼や骸浜哄憳淇℃伅/,'鍒犻櫎');
}
else{
objTable.lastChild.removeChild(objSourceRow);
rowIndex--;
}
}
function removeLine(){
}
</script>
jsp欏甸潰閮ㄥ垎浠g爜錛?br />
聽聽聽 <table width="100%" border="1" class="tableBorder" align=center >
聽聽聽聽聽 <tr align="center">
聽聽聽聽聽聽聽 <td height="56" class=forumrow style="display:none">濮撳悕</td>
聽聽聽聽聽聽聽 <td colspan="3" class=forumrow style="display:none" >
聽聽聽聽聽聽聽聽聽 <input聽 type="text" name="casualtyName" size="8"/>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">鎬у埆</td>
聽聽聽聽聽聽聽 <td class=forumrow style="display:none" >
聽聽聽聽聽聽聽聽聽 <select name="sex">
聽聽聽聽 <option value="male" selected>鐢?lt;/option>
聽聽聽聽 <option value="female" >濂?lt;/option>
聽聽聽聽聽聽聽聽聽 </select>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">鐢ㄥ伐褰㈠紡</td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">
聽聽聽聽聽聽聽聽聽 <select name="useForm">
聽聽聽聽聽聽聽聽聽聽聽 <option value="FORMAL_WORKER" selected>姝e紡宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="CONTRACT_WORKER">鍚堝悓宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="TEMP_WORKER">涓存椂宸?lt;/option>
聽聽聽聽聽聽聽聽聽 </select>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td class=forumrow style="display:none">宸ョ</td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">
聽聽聽聽聽聽聽聽聽 <select name="useKind">
聽聽聽聽聽聽聽聽聽聽聽 <option value="MANAGER" selected>綆$悊浜哄憳</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="MU_GONG">鏈ㄥ伐</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="WA_GONG">鐡﹀伐</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="JIA_ZI_GONG">鏋跺瓙宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="GANG_JIN_GONG">閽㈢瓔宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="HUN_NING_TU_GONG">娣峰嚌鍦熷伐</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="MO_HUI_GONG">鎶圭伆宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="JI_XIE_GONG">鏈烘宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="DIAN_GONG">鐢?shù)宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="DIAN_HAN_GONG">鐢電剨宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="GUAN_GONG">綆″伐</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="QIAN_GONG">閽沖伐</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="YOU_QI_GONG">娌規(guī)紗宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="FAN_SHUI_GONG">闃叉按宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="TONG_FENG_GONG">閫氶宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="DIAO_ZHUANG_GONG">鍚婅宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="BAN_YUN_GONG">鎼繍宸?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="LI_GONG">鍔涘伐</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="QIN_ZHA_GONG">鍕ゆ潅宸?lt;/option>
聽聽聽聽聽聽聽聽聽 </select>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td class=forumrow style="display:none">騫撮緞</td>
聽聽聽聽聽聽聽 <td class=forumrow style="display:none">
聽聽聽聽聽聽聽聽聽 <input type="text" name="age" size="4"/>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">浠庝笟鏃墮棿</td>
聽聽聽聽聽聽聽 <td colspan="3" class=forumrow style="display:none">
聽聽聽聽聽聽聽聽聽 <input type="text" name="workTime"聽 size="4"/>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">鏂囧寲紼嬪害</td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">
聽聽聽聽聽聽聽聽聽 <select name="education">
聽聽聽聽聽聽聽聽聽聽聽 <option value="ELEMENTORY_SCHOOL" selected>灝忓鍙?qiáng)浠ヤ?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="JUNIOR_HIGH_SCHOOL">鍒濅腑</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="SENIOR_HIGH_SCHOOL">楂樹腑/涓笓</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="COLLEGE">澶т笓</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="GRADUATE">澶т笓浠ヤ笂</option>
聽聽聽聽聽聽聽聽聽 </select>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td class=forumrow style="display:none">鎵垮寘褰㈠紡</td>
聽聽聽聽聽聽聽 <td colspan="3" class=forumrow style="display:none">
聽聽聽聽聽聽聽聽聽 <select name="contractTypeDetail">
聽聽聽聽聽聽聽聽聽聽聽 <option value="ZONG_CHENG_BAO">鎬繪壙鍖?lt;/option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="ZHUAN_YE_FEN_BAO">涓撲笟鍒嗗寘</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="LAO_WU_FEN_BAO">鍔沖姟鍒嗗寘</option>
聽聽聽聽聽聽聽聽聽 </select>
聽聽聽聽聽聽聽 </td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">浼や骸鎯呭喌</td>
聽聽聽聽聽聽聽 <td聽 class=forumrow style="display:none">
聽聽聽聽聽聽聽聽聽 <select name="casualtyInfo">
聽聽聽聽聽聽聽聽聽聽聽 <option value="LIGHT_HURT" selected>杞諱激</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="HEAVEY_HURT">閲嶄激</option>
聽聽聽聽聽聽聽聽聽聽聽 <option value="DIE">姝諱骸</option>
聽聽聽聽聽聽聽聽聽 </select>
聽聽聽聽聽聽聽 </td>
聽聽聽 <td><input name="add" type="button" id="add" value="澧炲姞璇︾粏浼や骸浜哄憳淇℃伅" onClick="addLine(this)"></td>
</tr>
</table>
ActionForm閮ㄥ垎浠g爜錛?br />
//浼や骸浜哄憳
聽聽聽 private String age[];
聽聽聽 private String casualtyInfo[];
聽聽聽 private String contractTypeDetail[];
聽聽聽 private String education[];
聽聽聽 private Integer id;
聽聽聽 private String casualtyName[];
聽聽聽 private String sex[];
聽聽聽 private String useForm[];
聽聽聽 private String useKind[];
聽聽聽 private String workTime[];
聽聽聽 public String[] getAge() {
聽聽聽聽聽聽聽 return age;
聽聽聽 }
聽聽聽 public void setAge(String age[]) {
聽聽聽聽聽聽聽 this.age = age;
聽聽聽 }
聽聽聽 public void setWorkTime(String workTime[]) {
聽聽聽聽聽聽聽 this.workTime = workTime;
聽聽聽 }
聽聽聽 public void setUseKind(String useKind[]) {
聽聽聽聽聽聽聽 this.useKind = useKind;
聽聽聽 }
聽聽聽 public void setUseForm(String useForm[]) {
聽聽聽聽聽聽聽 this.useForm = useForm;
聽聽聽 }
聽聽聽 public void setSex(String sex[]) {
聽聽聽聽聽聽聽 this.sex = sex;
聽聽聽 }
聽聽聽 public void setcasualtyName(String casualtyName[]) {
聽聽聽聽聽聽聽 this.casualtyName = casualtyName;
聽聽聽 }
聽聽聽 public void setId(Integer id) {
聽聽聽聽聽聽聽 this.id = id;
聽聽聽 }
聽聽聽 public void setEducation(String education[]) {
聽聽聽聽聽聽聽 this.education = education;
聽聽聽 }
聽聽聽 public void setcontractTypeDetail(String contractTypeDetail[]) {
聽聽聽聽聽聽聽 this.contractTypeDetail = contractTypeDetail;
聽聽聽 }
聽聽聽 public void setCasualtyInfo(String casualtyInfo[]) {
聽聽聽聽聽聽聽 this.casualtyInfo = casualtyInfo;
聽聽聽 }
聽聽聽 public String[] getCasualtyInfo() {
聽聽聽聽聽聽聽 return casualtyInfo;
聽聽聽 }
聽聽聽 public String[] getcontractTypeDetail() {
聽聽聽聽聽聽聽 return contractTypeDetail;
聽聽聽 }
聽聽聽 public String[] getEducation() {
聽聽聽聽聽聽聽 return education;
聽聽聽 }
聽聽聽 public Integer getId() {
聽聽聽聽聽聽聽 return id;
聽聽聽 }
聽聽聽 public String[] getcasualtyName() {
聽聽聽聽聽聽聽 return casualtyName;
聽聽聽 }
聽聽聽 public String[] getSex() {
聽聽聽聽聽聽聽 return sex;
聽聽聽 }
聽聽聽 public String[] getUseForm() {
聽聽聽聽聽聽聽 return useForm;
聽聽聽 }
聽聽聽 public String[] getUseKind() {
聽聽聽聽聽聽聽 return useKind;
聽聽聽 }
聽聽聽 public String[] getWorkTime() {
聽聽聽聽聽聽聽 return workTime;
聽聽聽 }
Action閮ㄥ垎浠g爜錛?/strong>
/**
聽聽聽聽聽聽聽聽 * 褰曞叆浼や骸浜哄憳璇︾粏淇℃伅
聽聽聽聽聽聽聽聽 */
聽聽聽聽聽聽聽 int counter = form.getcasualtyName().length;
聽聽聽聽聽聽聽 AccCasualtyPersonDAO perDAO = new AccCasualtyPersonDAO();
聽聽聽聽聽聽 AccCasualtyPersonInfo per = new AccCasualtyPersonInfo();
聽聽聽聽聽聽聽 for (int j = 1; j<counter; j++) {
聽聽聽聽聽聽聽聽聽聽聽 per.setAccNo(accNo);
聽聽聽聽聽聽聽聽聽聽聽 per.setAge(Integer.valueOf(form.getAge()[j]));
聽聽聽聽聽聽聽聽聽聽聽 System.out.println("age:"+form.getAge()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setCasualtyInfo(form.getCasualtyInfo()[j]);
聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("CasualtyInfo:"+form.getCasualtyInfo()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setContractType(form.getcontractTypeDetail()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setEducation(form.getEducation()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setName(form.getcasualtyName()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setSex(form.getSex()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setUseForm(form.getUseForm()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setUseKind(form.getUseKind()[j]);
聽聽聽聽聽聽聽聽聽聽聽 per.setWorkTime(form.getWorkTime()[j]);
聽聽聽聽聽聽聽聽聽聽聽if (!perDAO.addAccCasualtyPerson(per)) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return mapping.findForward("inputKuaibaofail");
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽姣忚閲岄潰鐨勯」錛岄兘鏄繀欏誨~鐨勶紝絎﹀悎欏圭洰鐨勯渶姹傘傛澶栵紝涔熷彲涓嶇敤Struts灝佽鍚屽悕鍙傛暟鐨勫姛鑳斤紝鍙互鐢↗avaScript鏉ュ仛浼犲箋?/p>
exception
javax.servlet.ServletException: Cannot retrieve mapping for action /showProLists org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779) org.apache.jsp.apply.showProList_jsp._jspService(showProList_jsp.java:193) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) javax.servlet.http.HttpServlet.service(HttpServlet.java:697) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 璧峰垵錛屾鐤戞槸:struts-config.xml閲岀殑action閰嶇疆閿欒錛屽悗鏉ヤ粩緇嗘鏌ワ紝鍙戠幇鏃犻敊璇紝鎺掗櫎姝ょ枒錛?br />鐢ㄥ埌鐨刟ction錛?br />public class ShowProListAction extends Action {
聽聽聽 public ActionForward execute(ActionMapping mapping,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ActionForm actionForm,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletRequest request,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletResponse Response) {
聽聽聽聽聽 // ShowProListForm form = (ShowProListForm)actionForm;
聽聽聽聽聽聽
聽聽聽聽聽聽 String temp=request.getParameter("testSecID");
聽聽聽聽聽聽 int ID=Integer.parseInt(temp);
聽聽聽聽聽聽 System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"+ID);
聽聽聽聽聽聽 ShowProListDAO prolistDAO=new ShowProListDAO();
聽聽聽聽聽聽 ArrayList arr=new ArrayList();
聽聽聽聽聽聽 arr=prolistDAO.getProList(ID);
聽聽聽聽聽聽 if(arr==null){
聽聽聽聽聽聽聽聽聽聽 return mapping.findForward("null");
聽聽聽聽聽聽 }
聽聽聽聽聽聽 if(arr !=null){
聽聽聽聽聽聽聽聽聽聽 if(arr.size()==0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return mapping.findForward("null");
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("showProList",arr);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("stationID",temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ArrayList proList=(ArrayList)request.getAttribute("showProList");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for(int i=0;i<proList.size();i++){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ShowProList projects=(ShowProList)proList.get(i);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println(projects.getProjectName());
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println(temp);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return mapping.findForward("success");
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽 }
return mapping.findForward("fail");
聽聽聽 }
}
System.out.println(temp)鍜孲ystem.out.println(projects.getProjectName());
鍧囨甯歌緭鍑恒傛鐤戯紝return mapping.findForward("success")鎬鐤戣繖涓姝ヨ煩杞敊璇紵
淇敼榪囪嫢騫查亶struts-config.xml鏂囦歡錛屼緷鏃ф湭鏋滐紒錛侊紒錛侊紒
鏈鍚庯紝dxian鏉ュ府蹇欐鏌ワ紝鍙戠幇瀹為檯涓婏紝璇ction綾伙紝瀹屽叏閫氳繃浜?jiǎn)銆傛槸鍦ㄨ煩杞埌涓嬩釜jsp欏甸潰鍚庯紝jsp欏甸潰閲屾湁涓琛ㄥ崟form錛?br />閮ㄥ垎浠g爜濡備笅錛?br /><html:form action="showProLists" method="post">showProListAction.do
<br><br>
<%
ArrayList proList=(ArrayList)request.getAttribute("showProList");
%>
鍥犱負(fù)錛屽垰寮濮嬪啓璇sp欏甸潰鏃訛紝鏄痗opy浜?jiǎn)涓涓繃鏉ョ洿鎺ユ敼鐨勶紝蹇樿鎶婇噷鐨刦orm鍘繪帀錛佺粨鏋滐紝鍙戠敓浜?jiǎn)閿欒锛?br />鑷蟲錛岃闂瑙e喅錛佸厛鍓嶉兘娌¢亣鍒拌繃榪欎釜鎯呭喌錛岃姳浜?jiǎn)濂藉鏃堕棿鍦q欎釜涓婇潰銆?br />鏈簡(jiǎn)錛岃鎰熻阿涓嬪府榪囨垜鏃犳暟嬈$殑 dxian錛氾級(jí)