执行操作未考虑Struts2中的实际结果名称

执行操作未考虑Struts2中的实际结果名称,struts2,validation,Struts2,Validation,让我问一个问题,也许很简单,但我是Struts2的新手 我在ProfileAction中有此操作方法: @覆盖 公共字符串execute()引发异常{ HttpServletRequest=ServletActionContext.getRequest(); HttpSession session=request.getSession(); String id=(String)session.getAttribute(“id”); 如果(id!=null&&!id.equals(“”&&!id.

让我问一个问题,也许很简单,但我是Struts2的新手

我在ProfileAction中有此操作方法:

@覆盖
公共字符串execute()引发异常{
HttpServletRequest=ServletActionContext.getRequest();
HttpSession session=request.getSession();
String id=(String)session.getAttribute(“id”);
如果(id!=null&&!id.equals(“”&&!id.equals(“0”)){
回归成功;
}
返回“noSession”;
}
在XML中:


您几乎肯定会遇到验证或类型转换错误

发生这种情况时,S2将尝试将您发送到“输入”结果以重新填写表单

不相关,但是像这样从请求中获取值完全否定了S2的许多功能。考虑使用一些教程等,并使用内置的便利性。


查看拦截器堆栈的一种简单易读的方法是使用分析拦截器。可以将其配置为默认设置,或按每个操作进行设置:


profilingKey
/WEB-INF/jsps/themes.jsp
请求时将“profilingKey”参数设置为“true”,日志将显示:

2013-04-09 21:22:25,813 INFO  : [1959ms] - invoke: 
  [1959ms] - interceptor: exception
    [1959ms] - invoke: 
      [1959ms] - interceptor: alias
        [1959ms] - invoke: 
          [1959ms] - interceptor: servletConfig
            [1957ms] - invoke: 
              [1957ms] - interceptor: i18n
                [1957ms] - invoke: 
                  [1957ms] - interceptor: prepare
                    [1956ms] - invoke: 
                      [1956ms] - interceptor: chain
                        [1956ms] - invoke: 
                          [1956ms] - interceptor: debugging
                            [1956ms] - invoke: 
                              [1956ms] - interceptor: scopedModelDriven
                                [1956ms] - invoke: 
                                  [1956ms] - interceptor: modelDriven
                                    [1956ms] - invoke: 
                                      [1956ms] - interceptor: fileUpload
                                        [1956ms] - invoke: 
                                          [1956ms] - interceptor: checkbox
                                            [1956ms] - invoke: 
                                              [1956ms] - interceptor: multiselect
                                                [1956ms] - invoke: 
                                                  [1956ms] - interceptor: staticParams
                                                    [1955ms] - invoke: 
                                                      [1955ms] - interceptor: actionMappingParams
                                                        [1955ms] - invoke: 
                                                          [1955ms] - interceptor: params
                                                            [1954ms] - invoke: 
                                                              [1954ms] - interceptor: conversionError
                                                                [1954ms] - invoke: 
                                                                  [1954ms] - interceptor: validation
                                                                    [1897ms] - invoke: 
                                                                      [1897ms] - interceptor: workflow
                                                                        [1897ms] - invoke: 
                                                                          [7ms] - invokeAction: themes
                                                                          [1889ms] - executeResult: success

我在一篇教程中发现。。。我不知道你是什么意思,因为我没有补充任何东西。。。我正在一步一步地学习教程,在实际提交表单之前,我只会显示一个页面。。。当我添加Json验证时,就会出现这个问题。在验证之前,所有操作都按预期工作。@jstuardo尽管如此,看起来验证或类型转换正在运行。问题可能会变成“验证失败时,如何从操作返回合理的JSON字符串?”如果是这样,这应该是有用的:我不这么认为,因为在第一次页面加载时,JSON根本不会被调用。这应该是在提交表格时才采取行动,但我当然可能是错的。