1.最简单的action页面提交和参数p的传递
<
form:form name
=
"
batchForm
"
method
=
"
post
"
action
=
"
/video/list.html
"
>
< input type = " hidden " name = " p " value = " <c:out value= " $ {videoList.p} " /> " /> // 从action取得p的值
</ form:form >
public ModelAndView list(HttpServletRequest request,HttpServletResponse response) {
int page = ServletRequestUtils.getIntParameter(request, "p", 1);//通过超连接取得p的参数值
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("p", page);
return new ModelAndView(listView, "videoList", map);
}
< input type = " hidden " name = " p " value = " <c:out value= " $ {videoList.p} " /> " /> // 从action取得p的值
</ form:form >
public ModelAndView list(HttpServletRequest request,HttpServletResponse response) {
int page = ServletRequestUtils.getIntParameter(request, "p", 1);//通过超连接取得p的参数值
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("p", page);
return new ModelAndView(listView, "videoList", map);
}
2.在javascript里面实现不同连接的表单提交
<
form id
=
"
messageForm
"
name
=
"
messageForm
"
method
=
"
post
"
onSubmit
=
"
return
onMessageFormSubmit(<c:out value= " $ {param.type} " />) " >
< input type = " hidden " name = " method " value = " delete " />
< input type = " hidden " name = " type " value = " <c:out value= " $ {param.type} " /> " />
</ form >
< script type = " text/javascript " >
function onMessageFormSubmit(type) {
if(type == 0) {
document.messageForm.action = '/commend/special/list.html';
}
if(type == 1){
document.messageForm.action = '/special/list.html';
}
}
Form.focusFirstElement($( ' messageForm ' ));
</ script >
onMessageFormSubmit(<c:out value= " $ {param.type} " />) " >
< input type = " hidden " name = " method " value = " delete " />
< input type = " hidden " name = " type " value = " <c:out value= " $ {param.type} " /> " />
</ form >
< script type = " text/javascript " >
function onMessageFormSubmit(type) {
if(type == 0) {
document.messageForm.action = '/commend/special/list.html';
}
if(type == 1){
document.messageForm.action = '/special/list.html';
}
}
Form.focusFirstElement($( ' messageForm ' ));
</ script >
3.通过编辑页面的提交给action="/special/edit.html"既对应的onsubmit方法返回给前一页面,注意删除按钮不应提交
<
c:set var
=
"
buttons
"
>
< input type = " submit " class = " button " name = " audited " onclick = " bCancel=false " value = " <fmt:message key
= " button.audited " /> " />
< input type = " button class= " button " οnclick= " location.href = ' /special/list.html?method=find&from=edit '"
value= " < fmt:message key = " button.delete " /> " />
< input type = " submit " class = " button " name = " cancel " onclick = " bCancel=true " value = " <fmt:message
key= " button.back " /> " />
</ c:set >
< form:form commandName = " special " method = " post " action = " /special/edit.html " id = " specialForm " >
< input type = " hidden " name = " type " value = " <c:out value= " $ {param.type} " /> " />
< p class = " buttonBar bottom " >
< c:out value = " ${buttons} " escapeXml = " false " />
</ p >
</ form:form >
< input type = " submit " class = " button " name = " audited " onclick = " bCancel=false " value = " <fmt:message key
= " button.audited " /> " />
< input type = " button class= " button " οnclick= " location.href = ' /special/list.html?method=find&from=edit '"
value= " < fmt:message key = " button.delete " /> " />
< input type = " submit " class = " button " name = " cancel " onclick = " bCancel=true " value = " <fmt:message
key= " button.back " /> " />
</ c:set >
< form:form commandName = " special " method = " post " action = " /special/edit.html " id = " specialForm " >
< input type = " hidden " name = " type " value = " <c:out value= " $ {param.type} " /> " />
< p class = " buttonBar bottom " >
< c:out value = " ${buttons} " escapeXml = " false " />
</ p >
</ form:form >
4.jsp使用request.getAttribute()方法接收传递过来的special参数对象
public
ModelAndView find(HttpServletRequest request,
HttpServletResponse response) {
if (log.isDebugEnabled()) {
log.debug("entering 'find' method...");
}
int specialId = ServletRequestUtils.getIntParameter(request,
"specialId", -1);
Special special = specialManager.findBySpecialId(specialId);
return new ModelAndView(findView, "special", special);
}
<%
if ( null == request.getAttribute( " special " ) )
{
%>
<script type="text/javascript">
alert('<fmt:message key="special.status.conflict"/>');
location.href='/special/list.html?type=<%=ServletRequestUtils.getIntParameter(request, "type",0)%>
&p=<%=ServletRequestUtils.getIntParameter(request, "p", 1)%>';
</script>
<%
return ;
} %>
HttpServletResponse response) {
if (log.isDebugEnabled()) {
log.debug("entering 'find' method...");
}
int specialId = ServletRequestUtils.getIntParameter(request,
"specialId", -1);
Special special = specialManager.findBySpecialId(specialId);
return new ModelAndView(findView, "special", special);
}
<%
if ( null == request.getAttribute( " special " ) )
{
%>
<script type="text/javascript">
alert('<fmt:message key="special.status.conflict"/>');
location.href='/special/list.html?type=<%=ServletRequestUtils.getIntParameter(request, "type",0)%>
&p=<%=ServletRequestUtils.getIntParameter(request, "p", 1)%>';
</script>
<%
return ;
} %>
5.此时的param是有controller传递过来的参数别名,即spring自带的参数.
<
form:form commandName
=
"
special
"
method
=
"
post
"
id
=
"
specialForm
"
name
=
"
specialForm
"
onsubmit = " return validateSpecial(this) " >
< input type = " hidden " name = " type " value = " <c:out value= " $ {param.type} " /> " />
< input type = " hidden " name = " p " value = " <c:out value= " $ {param.p} " /> " />
</ form:form >
onsubmit = " return validateSpecial(this) " >
< input type = " hidden " name = " type " value = " <c:out value= " $ {param.type} " /> " />
< input type = " hidden " name = " p " value = " <c:out value= " $ {param.p} " /> " />
</ form:form >
6.通过controller传递参数,得到hashMap所封装的对象.
public
ModelAndView list(HttpServletRequest req, HttpServletResponse res)
{
HashMap<String,Object> videoRelationsMap = new HashMap<String,Object>();
videoRelationsMap.put("video", video);
return new ModelAndView(view,"videoRelationsList",videoRelationsMap);
}
<% Videos videos = (Videos)((HashMap)request.getAttribute( " videoRelationsList " )).get( " video " ); %>
HashMap<String,Object> videoRelationsMap = new HashMap<String,Object>();
videoRelationsMap.put("video", video);
return new ModelAndView(view,"videoRelationsList",videoRelationsMap);
}
<% Videos videos = (Videos)((HashMap)request.getAttribute( " videoRelationsList " )).get( " video " ); %>