gpt4 book ai didi

java - Struts 2 表单处理的奇怪问题

转载 作者:行者123 更新时间:2023-11-30 07:13:59 25 4
gpt4 key购买 nike

我正在测试如果我在我的操作中设置了一个整数字段,并且有人试图为其提供 String 值,将会发生什么情况。

例如:

public class FooAction extends ActionSupport
{
private Integer foo;
public Integer getFoo()
{ ... }

public void setFoo(Integer foo)
{... }

public String execute()
{
System.out.println( foo );
return SUCCESS;
}
}

如果我创建以下表单并尝试提交它:

<form method="post" action="/foo.action">
<input type="text" name="foo" />
<input type="submit" value="go" />
</form>

然后,如果我只在文本框中提供一个数字,它就可以正常工作。

但是,如果我在文本框中提供诸如“bar”之类的字符串,则会发生以下情况:

1) 在 IDE 的输出窗口中,我看到有关尝试将字符串值设置为整数字段的异常的警告。

2) 紧接着,我看到“null”作为 foo 的值。

3) 然而,奇怪的是,在我设置为在提交表单时显示的 .jsp 文件中,我有以下行:

<h2><s:property value="foo" /></h2>

jsp 这一行的输出是 bar(这是我在表单中输入的内容),即使 foo 字段是整数并且我得到了 null 尝试输出时在输出窗口中显示。

谁能解释一下这笔交易是什么?

最佳答案

您的堆栈中可能有 conversionError 拦截器。

这是来自 javadoc 的片段

In addition, any field that contains a validation error has its original value saved such that any subsequent requests for that value return the original value rather than the value in the action. This is important because if the value "abc" is submitted and can't be converted to an int, we want to display the original string ("abc") again rather than the int value (likely 0, which would make very little sense to the user).

关于java - Struts 2 表单处理的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com