使用SpringWeb中的标准html代码,通过formBackingObject方法预填充表单字段
我只是想通过formBackingObject在用户表单中预先填充表单字段。 我使用简单的html代码而不是spring标记来创建字段 实际上,我已经尝试使用spring标记,但输入字段的spring标记不起作用,所以我改为使用简单的html代码,但spring标记适用于使用SpringWeb中的标准html代码,通过formBackingObject方法预填充表单字段,spring,spring-mvc,spring-webflow,Spring,Spring Mvc,Spring Webflow,我只是想通过formBackingObject在用户表单中预先填充表单字段。 我使用简单的html代码而不是spring标记来创建字段 实际上,我已经尝试使用spring标记,但输入字段的spring标记不起作用,所以我改为使用简单的html代码,但spring标记适用于,但不适用于 我会检查taglib导入段,但它很好,我不知道 正在工作,那么为什么不工作 我之所以这样描述,是因为StackOverflow的某个地方和某个人说,为了获得formBackingObject的好处,我将使用spri
,但不适用于
我会检查taglib导入段,但它很好,我不知道
正在工作,那么为什么
不工作
我之所以这样描述,是因为StackOverflow的某个地方和某个人说,为了获得formBackingObject的好处,我将使用spring标记作为输入字段,但在我的情况下,它不起作用
这里我考虑的formBackingObject仅用于预填充表单字段,这正是我的问题标题所建议的。无论如何,我很快就会做的。
我已经通过大约30-40页的链接找到了这个解决方案,但是
我需要一个非常简单的例子,其中jsp字段获取通过formBackingObject返回的对象值
我不熟悉注释
这是我尝试过的失败的例子
联系_form.jsp
spring-servlet.xml
提前感谢假设您在confog xml文件中指定了处理程序映射: 确保您在类似的行上有jsp,如下所示:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<form:form commandName="contact" method="POST">
<table>
<tr >
<td>Name:<form:input path="name"/></td>
</tr>
<tr >
<td>Address:<form:input path="address"/></td>
</tr>
<tr>
<td colspan="3"><input type="submit"/></td>
</tr>
</table>
</form:form>
</body>
</html>
我使用了您为jsp文件编写的内容,但它不起作用,它引发了一个异常“java.lang.IllegalStateException”。而且没有初始化联系人表单的问题。你能发布完整的异常stacktrace吗。它太大了,无法发布,但我正在发布它的一些部分。[处理第28行的JSP page/pages/contact_form.JSP时发生异常25:26:27:28:Name:29:30:31:Address:Stacktrace:]带根本原因java.lang.IllegalStateException:bean名称“contact”的BindingResult或普通目标对象都不能作为请求属性使用请参见我的编辑到HandlerRequestInternal方法:返回新的ModelAndView(“contact_form”,“contact”,contact);这并不能解决我的问题,它会返回到填充对象所在的同一页。在执行任何事件或渲染到另一页之前,我希望在初始页填充字段。
public class EditController extends SimpleFormController {
private static Contact cont = new Contact();
static {
cont.setAddress("aaa");
cont.setName("bbb");
}
@Override
protected void doSubmitAction(Object command) throws Exception {
System.out.println("In do submit method");
}
@Override
protected Object formBackingObject(HttpServletRequest request)
throws Exception {
System.out.println("In FormBackingObject");
return cont;
}
<bean id="/edit.htm" class="tryPack7.EditController">
<property name="CommandClass" value="tryPack7.Contact" />
<property name="commandName" value="contact" />
<property name="formView" value="contact_form" />
<property name="successView" value="success" />
</bean>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<form:form commandName="contact" method="POST">
<table>
<tr >
<td>Name:<form:input path="name"/></td>
</tr>
<tr >
<td>Address:<form:input path="address"/></td>
</tr>
<tr>
<td colspan="3"><input type="submit"/></td>
</tr>
</table>
</form:form>
</body>
</html>
public class EditController extends SimpleFormController {
public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
Contact contact=(Contact)formBackingObject(request);
return new ModelAndView("contact_form","contact",contact);
}
public Object formBackingObject(HttpServletRequest req)
{
Contact contact = new Contact();
contact.setAddress("aaa");
contact.setName("bbb");
return contact;
}
}