没有为动作<class>和结果输入</class>定义结果

时间:2013-02-27 18:04:23

标签: java json struts2 actionresult struts2-interceptors

这是我的struts.xml

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

当我致电loadcity.action时,我收到了以下错误

No result defined for action roseindia.action.user.RegisterUser and result input

这是我的行动方法:

public String loadcity()
{ 
    country=request.getParameter("country");

    cityList=  dao.loadcity(country);
    return ActionSupport.SUCCESS;
}

3 个答案:

答案 0 :(得分: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 :(得分:1)

如果您正在执行POST请求,validation拦截器可能会返回INPUT结果。通常,您已完成向操作配置添加"input"结果,但只要您返回"json"结果,就可以从验证中排除此操作,或者检查返回到结果类型或状态代码的结果。调用者处理内容。

答案 2 :(得分: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 plugin throws error no result type is defined