gpt4 book ai didi

struts2 - 避免在 Struts 中自动返回 "input"

转载 作者:行者123 更新时间:2023-12-04 04:52:50 26 4
gpt4 key购买 nike

struts.xml中的action配置是这样的时候就没有问题了:

<action name="customer-form">
<result name="success" type="tiles">/customer.tiles</result>
</action>

当我访问操作配置 (struts.xml) 上的操作类时,问题就出现了。我在显示表单之前访问该类,因为我希望表单中的下拉选项在我在操作类中实例化它时显示适当的值。但事实证明,它会返回“输入”,我必须处理它。

Action 类中的方法:

public String addCusto(){
custoType = new ArrayList<String>();
custoType.add("ABC");
custoType.add("EFG");
System.out.println(custoType.size());
return SUCCESS;
}

struts.xml:

<action name="customer-form" class="com.satunol.struts.template.action.CustomerAction" method="addCusto">
<result name="success" type="tiles">/customer.tiles</result>
<result name="input" type="tiles">/customer.tiles</result>
</action>

jsp中的表单
<s:form action="savecusto" method="post" validate="true">
<s:select
label="Customer Type"
list="custoType"
emptyOption="true"
headerKey="-1"
headerValue="None"/>
<s:textfield name="custo.name" key="custo.name" size="20" />
<s:textfield name="custo.email" key="email" size="20" />
<s:textfield name="custo.address" key="address" size="20" />
<s:textfield name="custo.phone" key="phone" size="20" />
<s:submit method="addCustomer" key="label.add.customer" align="center" />

结果? addCusto方法未执行,我的表单虽然尚未提交,但已直接/自动验证。

我该如何解决这个问题?

最佳答案

如果您的 Action 可以返回 input结果,那么你必须在 struts.xml 配置中处理它。
input当发生某些验证错误时,或者当您尝试设置错误类型的操作属性时,验证拦截器会返回结果,例如当您尝试设置 int 时。到 Date领域。

当拦截器返回结果而不是继续下一个拦截器(或者如果是最后一个拦截器),则不会执行被调用的 Action 方法,因为它不会被到达。

仔细检查您的代码和您的请求,看看它在哪里失败并返回 input结果。

附:

如果与

I access the class before displaying the form because I want the dropdown option in the form to display the appropriate value as I instantiate it in action class.



你的意思是你需要在执行任何方法之前预先填充字段(或者当 input 结果返回时),你应该使用 prepare()方法,由在验证拦截器之前运行的准备拦截器运行。这样,您的 prepare()即使验证失败,代码也会被执行。

欲了解更多信息,请阅读 How do we repopulate controls when validation fails

关于struts2 - 避免在 Struts 中自动返回 "input",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17183372/

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