创建表单的最佳非框架(仅限JSP / Servlet)方式是什么,它可以:
做一个或另一个似乎相当直接,但创建一个同时支持两者的表单是棘手的。
例如使用
${param.scheduledDate}
非常适合在验证失败时重新显示日期,但无法在页面加载时以编程方式轻松设置。相反,
${myBean.scheduledDate}
非常适合显示从数据库加载的值,但由于bean使用的是Date类型的对象而不是字符串,因此无法在验证失败时重新显示数据。
有些事情浮现在脑海中,但看起来并非如此:
答案 0 :(得分:3)
在视图方面进行。在EL中使用条件运算符?:
:
<input name="foo" value="${fn:escapeXml(empty bean.foo ? param.foo : bean.foo)}" />
请注意,我认为与GET不同,POST请求在验证成功之前不会预先填充${bean}
。
这种冗长是MVC框架存在的原因之一。例如,JSF由EditableValueHolder
接口完全透明地处理,由UIInput
个组件实现。
答案 1 :(得分:0)
将HTTP请求转发回发布表单的同一页面违反了Post-Redirect-Get最佳做法,应避免使用。可以保存用户在会话中提交的内容或使用URL参数来保存用户提交的值并重定向回原始页面,但这不是很优雅。表单提交的最佳解决方案之一是使用AJAX提交表单。