Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果侦听器中的身份验证失败,则Struts2返回json_Java_Json_Jsp_Struts2 - Fatal编程技术网

Java 如果侦听器中的身份验证失败,则Struts2返回json

Java 如果侦听器中的身份验证失败,则Struts2返回json,java,json,jsp,struts2,Java,Json,Jsp,Struts2,请注意,我不是Java开发人员,所以我的问题可能有一些令人心碎的假设&无效的代码 我有一个拦截器,负责登录验证 <global-results> <result name="login">/admin/login.jsp</result> </global-results> /admin/login.jsp 如图所示,当身份验证失败时,它会重定向到login.jsp,即返回值为“login”(在本例中) 我想要实现的是,我返回一些其他值

请注意,我不是Java开发人员,所以我的问题可能有一些令人心碎的假设&无效的代码

我有一个拦截器,负责登录验证

<global-results>
   <result name="login">/admin/login.jsp</result>
</global-results>

/admin/login.jsp
如图所示,当身份验证失败时,它会重定向到login.jsp,即返回值为“login”(在本例中)

我想要实现的是,我返回一些其他值(比如“loginAjax”),它不应该发送HTTP302,而是应该返回JSON响应

我不知道这是否可能。我在struts.xml中还有另一部分,当从操作返回特定值时,它返回json

<result name="success" type="json">
    <param name="includeProperties">
        return_id, return_message
    </param>
</result>

返回\u id,返回\u消息

我不知道应该如何将这两个部分连接在一起,并使其在同一个拦截器上工作。

全局结果不与一个或多个拦截器或操作绑定:它对每个人都是全局的,因此在返回时将呈现它,无论是谁返回它

您需要添加一个json类型的全局(与其他登录结果保持一致,即全局)结果,如下所示:


/admin/login.jsp
然后,您可以发送特定的状态码或错误码

如果您需要了解应该从拦截器中返回什么样的结果,那么应该按照描述的方式进行,检查成功后将返回的结果的类型


S:哦,考虑雇佣一个java开发人员来正确地做java的事情:

谢谢你的帮助。我会试试你的解决办法。还有你的建议:P