【发布时间】:2012-05-06 20:17:59
【问题描述】:
这里是: 我正在通过这个刷新一个名为 index.jsp 的页面
<head>
<meta http-equiv="Refresh" CONTENT="0;URL=populatefields.action">
</head>
它在召唤我的行动。这是我的 struts.xml 中的映射
<struts>
<package name="com.action" extends="struts-default">
<action name="*fields" method="{1}" class="com.action.RegisterAction">
<result name="populate">/register.jsp</result>
<result name="fields">/success.jsp</result>
<result name="error">/index.jsp</result>
</action>
我在这里所做的是加载 index.jsp,我用这个 url 'populatefields.action' 刷新了它。这将调用我的操作类和 populate 方法(通配符方法调用)。Populate 方法从数据库中选择条目并将它们分配给表单字段属性和 returns "populate";Which 控制 register.jsp 已经填充了一些值。[即根据当前用户动态填写部分表单]
在 register.jsp 上,如果有一些验证检查,比如
if(getUssername.equals(""))
{this.addActionerror("Empty field -Uname-"); return error;}
问题是在返回“错误”时,控件转到 index.jsp,然后填充方法并填充自动字段,但填充方法不会引发任何错误,因此为空...或错误丢失... 知道如何访问这些错误吗?通过在我的动作课中设置 dem 全局? actionerrors 出现在 index.jsp 中,但我想在每次加载时刷新该页面以从数据库中选择值...我可以将操作错误的值从一个 jsp 页面带到另一个页面吗?
【问题讨论】:
-
如果您想要更复杂的动态行为,您只能使用 html 到此为止。最简单的方法是使用 AJAX。这里有很多使用 JSON 插件的例子。您可以通过将错误推送到会话中来实现您的要求,但这将是一个脆弱的解决方案,不适用于多种 Web 应用程序,因此最好坚持使用在大多数情况下都有效的方法。
-
检查我的答案了吗!
标签: jsp struts2 struts struts-validation struts-html