在 Struts 2 中没有为操作 <class> 和结果“输入”定义结果

问题描述 投票:0回答:3
java json struts2 actionresult struts2-interceptors
3个回答
2
投票

首先,您的

srtuts.xml
文件并未完全定义应该在操作执行的响应上呈现的结果类型。
result
标签在 Struts2 MVC 框架中扮演着视图的角色。操作负责执行业务逻辑。执行业务逻辑后的下一步是使用标签显示视图。 在这里你可以做一件事

<package name="ajax" extends="json-default" >
    <action name="loadcity"  method="loadcity" class="roseindia.action.user.RegisterUser" >
        <result name="input" type="json" />
    </action>
</package>

1
投票
如果您的操作有错误,

INPUT
结果将由
workflow
拦截器
返回。在执行您的操作之前,堆栈中的拦截器可能会遇到这些错误。例如,执行验证时可能会出现验证错误,因为堆栈上有一个
validation
拦截器

您应该将

INPUT
结果添加到操作配置中。如果您发出 Ajax 请求并期望 JSON 响应,那么您可以返回
INPUT
类型的
"json"
结果,您可以在其中添加错误和消息。您还可以调整状态代码。


0
投票

您的

XML
节点
result
应具有属性
name
,其值为
"input"
,因为这就是您要返回的内容。

所以你的 struts.xml 应该是这样的:

<package name="ajax" extends="json-default" >
    <action name="loadcity"  method="loadcity" class="roseindia.action.user.RegisterUser" >
        <result name="input" type="json" />
    </action>
</package>

编辑:

另一个错误可能是:

您收到验证或类型转换异常,因此看起来 对于“输入”结果。

修复验证/类型转换异常。

来源:struts 2 json插件抛出错误,未定义结果类型

© www.soinside.com 2019 - 2024. All rights reserved.