我支持使用 Struts 1.3.10 编写的遗留应用程序,并且我正在使用验证 xml 框架。我使用一个动作来处理 POST 请求,并重定向到另一个动作来显示它。当我处理 POST-ed 表单数据时,我读取表单 bean,存储在会话范围内的临时对象中,并在需要显示它时从该对象中读取。(这是发布模式后的经典重定向)。
看起来像这样:
user posts to Action1 --> [Process, load Session Object] --> Redirect to DisplayAction --> [pull from Session Object for display] --> user gets what they requested.
当用户提交并出现错误时,Struts 会将验证错误发送到 DisplayAction.do —— 我这样做是为了不丢失输入的最新和最大数据。
我有一个用户输入地址的表单,并且对于第一次通过的验证工作正常,但不是连续的。也就是说,如果用户第一次省略了邮政编码,struts 会正确计算出来,然后重定向回 DisplayAction。错误样式等都可以正常工作。如果用户更正了错误(第二遍),那么所有字段都会在有空格的地方插入“+”号:因此,像“10 Oak Street”这样的地址将显示为“10+Oak+Street”——而验证器特殊字符检查失败并一直声称数据错误并且用户卡住了。
任何人都知道为什么“+”会被插入或更好地如何防止它?从未见过这种行为。
_抢