写了几次SSH的小项目,一步步还是有学到很多东西,记录一下,以后忘了的话,还可以翻翻看看。
注:越来越觉得用div标签的好处了
首先实现一个小功能,下拉框的时间的响应
<tr>
<td colspan="3">按照用户ID查询:
<select onchange="selectChange()"id="selectSId">
<option value="0">all users</option>
<s:iterator value="student_all_list" id="student">
<%-- 判断当前显示的结果集中的SId与自己已经选择的SId是否相同
-- 初始时SId为空,所以显示第一个all users
-- 响应一次selectChange时,SId已经生成
-- 所以执行完毕之后就会默认selected刚才查询的ID
-- 后台本来已经有了SId但是等号后面直接使用SId会和student.SId冲突,所以又重新定义了一个selectSId
--%>
<s:if test="#student.SId==selectSId">
<option value="${student.SId}" selected>
${student.SId}
</option>
</s:if>
<s:else>
<option value="${student.SId}">
${student.SId}
</option>
</s:else>
</s:iterator>
</select>
</td>
</tr>
function selectChange(){
var objS = document.getElementById("selectSId");
//可以获取到响应的选中项
var SId = objS.options[objS.selectedIndex].value;
if("0"==SId) fillWithWords();
else
$.ajax({
url:"selectStudentBySId",
type:"POST",
dataType:"html",
async: false,
data:{"SId":SId},
success:function(data) {
$("#showStudent").html(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
},
complete:function(data) {
},
});
}
//Action中要使用的数据,直接用@Setter @Getter即可
@Setter @Getter
private List student_list;
@Setter @Getter
private List student_all_list;
@Resource @Setter @Getter
private StudentService studentService;
@Setter @Getter
private String SId;
@Setter @Getter
private String selectSId;
很简单的功能,都是些细节问题。
用了Struts的标签
注:#,%{},%{#}以及${},要区分开来