2013-04-09 2 views
1

Позвольте мне задать вопрос, может быть, просто, но я новичок в Struts2.выполнить действие не рассматривает имя фактического результата в Struts2

У меня есть этот метод действия в действии ProfileAction:

@Override 
public String execute() throws Exception { 
    HttpServletRequest request = ServletActionContext.getRequest(); 
    HttpSession session = request.getSession(); 
    String id = (String) session.getAttribute("id"); 
    if (id != null && !id.equals("") && !id.equals("0")) { 
     return SUCCESS; 
    } 

    return "noSession"; 
} 

И это в XML:

<action name="perfil" class="agenda.ProfileAction"> 
     <result name="success" type="tiles">/profile.tiles</result> 
     <result name="noSession" type="tiles">/login.tiles</result> 
    </action>   

    <action name="conexion" class="agenda.ProfileAction" method="login"> 
     <interceptor-ref name="jsonValidationWorkflowStack"> 
      <param name="validation.excludeMethods">init,input</param> 
     </interceptor-ref> 
     <result name="loginSuccess" type="tiles">/login/success.tiles</result> 
     <result name="loginError" type="tiles">/login/error.tiles</result> 
    </action>     

Как вы видите, у меня есть результат "noSession" в методе по умолчанию, но когда я запустите страницу, она выдает исключение, потому что требуется результат ввода. Когда я заменяю «noSession» в XML «вводом», он работает, но побочным эффектом является то, что проверка JSON не работает.

Кажется, что метод execute не вызывается. У меня даже есть исключение для броска, и на самом деле он не называется.

Я traying называть действием таким образом:

http://www.domain.com:8080/AgendaPlus/perfil

ответ

2

Вы почти наверняка получаю ошибку преобразования проверки или типа.

Если это произойдет, S2 попытается перенаправить вас к результату «ввода», чтобы повторно заполнить форму.

Несвязанный, но получение значений из запроса, как это, полностью отрицает значительную силу S2. Рассмотрите возможность работы с некоторыми учебниками/etc. и использовать встроенные удобства.


Один простой, удобный для человека способ взглянуть на стек перехватчика - использовать профилирующий перехватчик. Это может быть сконфигурирован по умолчанию, или установить на за действие основе:

<action name="themes" class="test.ThemesAction"> 
    <interceptor-ref name="profiling"> 
    <param name="profilingKey">profilingKey</param> 
    </interceptor-ref> 
    <interceptor-ref name="defaultStack"/> 
    <result>/WEB-INF/jsps/themes.jsp</result> 
</action> 

сделать запрос, включающий параметр «profilingKey» установлено значение «истина», и ваши журналы будут показывать:

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 
+0

Я нашел это в учебнике ... Я не понимаю, что вы имеете в виду, потому что я ничего не заправляю ... Я следую за учебниками шаг за шагом, и я нахожусь на этом шаге, который показывает только страницу, прежде чем фактически представляя форму. – jstuardo

+0

Кстати ... эти проблемы возникают, когда я добавил Json Validation. Перед проверкой все работало так, как ожидалось. – jstuardo

+0

@jstuardo Тем не менее, похоже, что выполняется проверка или преобразование типов. –

Смежные вопросы