我的网页上有这样的表格:
<html>
<head>
...
</head>
<body>
<form id="form4" name="form4" method="post" action="Receive.jsp">
<input name="inputField1" type="text"/>
...
<input type="submit" value="Send"/>
</form>
</body>
</html>
然后在我的Receive.jsp
中使用:
<jsp:useBean id="form4" class="control.FormBean4" scope="session"/>
<jsp:setProperty name="form4" property="*"/>
要将表单中的所有输入数据都添加到Bean中,然后我会用它做一些事情。现在,我想要做的是将数据从Bean重定向到另一个JSP中,并在其中包含另一个表单,并使用我的Bean中的属性填充该表单的输入字段。我的问题是,是否有某种方法可以自动填写表格,如<jsp:setProperty name="form4" property="*"/>
但向后填充?
我已经尝试了<jsp:getProperty name="form4" property="*"/>
,但它显然不起作用(我在JSP参考中的某处读到这是无效的),所以我想知道你是否知道某种方法可以做到这一点,因为我不仅仅有一个表单,每个表单都有一堆字段,我想保存所有逐个设置值的工作。
我仍然是JSP的新手,对于JSTL或任何像Struts这样的框架并不是很了解,我们将非常感谢任何帮助。
答案 0 :(得分:1)
我的问题是,是否有某种方法可以自动填写表格,如
<jsp:setProperty name="form4" property="*"/>
但向后填充?
没有。您需要自己动手,或者前往基于JSP / Servlet的MVC框架,如JSF,Struts,Spring-MVC等。
自己动手:
<input type="text" name="textName" value="${fn:escapeXml(bean.textName)}" />
<select name="dropdownName">
<c:forEach items="${bean.dropdownOptions}" var="dropdownOption">
<option value="${dropdownOption.key}" ${bean.dropdownName == dropdownOption.key ? 'selected' : ''}>${dropdownOption.value}</option>
</c:forEach>
</select>
<c:forEach items="${bean.checkboxOptions}" var="checkboxOption">
<c:forEach items="${bean.checkboxName}" var="checkboxName">
<c:if test="${checkboxName == checkboxOption.key}">
<c:set var="checked" value="true" />
</c:if>
</c:forEach>
<input type="checkbox" name="checkboxName" value="${checkboxOption.key}" ${checked ? 'checked' : ''}>${checkboxoption.value}<br/>
</c:forEach>
要使用例如JSF:
<h:inputText value="#{bean.textName}" />
<h:selectOneMenu value="#{bean.dropdownName}">
<f:selectItems value="#{bean.dropdownOptions}" />
</h:selectOneMenu>
<h:selectManyCheckbox value="#{bean.checkboxName}">
<f:selectItems value="#{bean.checkboxOptions}" />
</h:selectManyCheckbox>
(反过来也会立即最小化<jsp:useBean>
和所有Servlet代码样板)