在使用struts的过程,由于要统一风格,页面表单提交改用超链接.
在struts提供的表单标记中,提供了<html:submit>提交标记,它被转化为button按扭,虽然用CSS美化过,效果还是不尽人意,其他标记也没有这种能力.于是作了这样的实验:
<html:form action="/rBroadAction.do" method="post">
itemperpage: <html-el:text property="itemPerPage" size="5" value="${rBroadActionForm.itemPerPage}"/> go page:<html-el:text property="currentPage" size="5" value="${rBroadActionForm.currentPage}"/> <html:submit property="submit" value="Submit"/> <html:link page="#" linkName="submit" οnclick="document.forms[0].submit()">Submit</html:link><br> <a href="#" οnclick="document.forms[0].submit()">atest</a><br> <a href="javascript:" οnclick="document.forms[0].submit();">btest</a></html:form>下面是提交出错后调试代码,高亮处为出错代码:
<form name="rBroadActionForm" method="post" action="/struts-blank/rBroadAction.do">
itemperpage: <input type="text" name="itemPerPage" size="5" value="10"> go page:<input type="text" name="currentPage" size="5" value="5"> <input type="submit" name="submit" value="Submit"> <a name="submit" href="/ccenter/rBroadAction.do" onclick="javascript:window.document.forms['rBroadActionForm'].submit()">Submit</a><br><a href="#" οnclick="document.forms[0].submit()">atest</a><br>
<a href="javascript:" οnclick="document.forms[0].submit();">btest</a></form>结论:在struts表单中使用<html:link>以及普通html的<a>标记提供提交功能都不成功.
解决办法:使用普通表单.如下代码:
<form name="ba" action="rBroadAction.do">
itemperpage:<input type="text" name="itemPerPage" size="5" value="<c:out value='${rBroadActionForm.itemPerPage}'/>"> go page:<input type="text" name="currentPage" size="5" value="<c:out value='${rBroadActionForm.currentPage}'/>"> <a href="#" οnclick="document.ba.submit()">Submit</a> <!--a href="#" οnclick="document.forms[0].submit()">Submith</a><br--></form>同样的脚本代码,在普通表单中畅行无阻,但在struts表单中却寸步难行.
原文链接: