Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Struts action


Автор: novichok84 2.3.2007, 13:02
Привет.

Имеется форма 

Код

<html:form enctype="multipart/form-data" action="saveAdUsersForm" onsubmit="return 
validateAdUsersFormCustom(this)">
.
.
        <c:choose>
          <c:when test="${(empty adUsersForm.id)}">                
<jguard:hasPrincipal principals="AdUsers_N">        
        <html:submit styleClass="button" property="action" onclick="bCancel=false">
            <bean:message key="button.save"/>
        </html:submit>
</jguard:hasPrincipal>            
          </c:when>
          
          <c:otherwise>
<jguard:hasPrincipal principals="AdUsers_E">        
        <html:submit styleClass="button" property="action" onclick="bCancel=false">
            <bean:message key="button.save"/>
        </html:submit>
</jguard:hasPrincipal>
</html:form >


В етой форме есть несколько сабмит кнопок, которые отправляют запрос на один и тот же екшн.

Struts-config.xml -> 
Код

<action
      path="/saveAdUsersForm"
      type="web.action.AdUsersAction"
      name="adUsersForm"
      scope="request"
      input="edit"
      parameter="action"
      unknown="false"
      validate="true"
    >
      <forward
        name="edit"
        path=".AdUsersForm"
        redirect="false"
      />
      <forward
        name="list"
        path=".AdUsersFormList"
        redirect="false"
      />
      <forward
        name="ajax_list"
        path=".AdUsersFormAjaxList"
        redirect="false"
      />
      <forward
        name="list_search"
        path=".AdUsersFormListSearch"
        redirect="false"
      />
    </action>


Вот шаблон екшена -> 

Код

public class AdUsersAction extends BaseAction {

    private Log log = LogFactory.getLog(AdUsersAction.class);
    public ActionForward redirectToDetail(ActionMapping mapping, String idValue, String lsId)throws Exception{
        ActionForward actionLocal = new ActionForward();
        ActionForward action=mapping.findForward("master_det");
        String path=action.getPath();
        actionLocal.setName(action.getName());
        if (lsId==null){
        actionLocal.setPath(path+idValue);
        }else{
          actionLocal.setPath(path+idValue+ "&lsid=" + lsId);
        }  
        actionLocal.setContextRelative(action.getContextRelative());
        actionLocal.setRedirect(action.getRedirect());
        return actionLocal;                
    }

    public ActionForward cancel(ActionMapping mapping, ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response)
    throws Exception {
        return mapping.findForward("list");
           
    } 

   

    public ActionForward delete(ActionMapping mapping, ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response)
    throws Exception {

        return mapping.findForward("list");
            
  }

    public ActionForward edit(ActionMapping mapping, ActionForm form,
                              HttpServletRequest request,
                              HttpServletResponse response)
    throws Exception {
        return mapping.findForward("edit");
    }


    public ActionForward save(ActionMapping mapping, ActionForm form,
                              HttpServletRequest request,
                              HttpServletResponse response)
    throws Exception {
       return mapping.findForward("list"); 
         
    }
    
}



В екшене есть несколько методов. Вопрос: как знать на который из методов запрос из формы?

Наверно глупый вопрос, но сам найти не могу - здоровенный проект....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)