首先,您的
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>
INPUT
结果将由workflow
拦截器返回。在执行您的操作之前,堆栈中的拦截器可能会遇到这些错误。例如,执行验证时可能会出现验证错误,因为堆栈上有一个 validation
拦截器。
您应该将
INPUT
结果添加到操作配置中。如果您发出 Ajax 请求并期望 JSON 响应,那么您可以返回 INPUT
类型的 "json"
结果,您可以在其中添加错误和消息。您还可以调整状态代码。
您的
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>
编辑:
另一个错误可能是:
您收到验证或类型转换异常,因此看起来 对于“输入”结果。
修复验证/类型转换异常。