代码之家  ›  专栏  ›  技术社区  ›  lisak

代替弹簧MVC模型的支柱

  •  2
  • lisak  · 技术社区  · 14 年前

    嘿, 我使用的是SpringMVC,我习惯了在不直接填充servlet请求的情况下将数据“发送”到视图,这是非常灵活和有效的。我正试图弄明白如何在Struts中做类似的事情,因为就我所见,唯一能“发送”DTO到视图的方法是通过请求调度器,在这里,servlet请求由程序员手工以键值样式填充DTO。

    这导致与SpringMVC相比,视图层(JSP)中的逻辑太多。

    这是将数据从处理程序传输到视图层的唯一方法吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   CoolBeans Jake    14 年前

    The Action class:
    
    public class SomeAction extends DispatchAction {
     public ActionForward someRequest(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)
                throws Exception {
      SomeForm someForm = ( SomeForm) form;
      List<SomeDTO> someList = populateDto();
      someForm.setSomeList(someList);
      return mapping.findForward("someAction");
    
    }
    The Form class:
    
    public class SomeForm extends ActionForm{
    
       List<SomeDTO> someList;
       //getter and setters for someList
    }
    
    StrutsConfig:
    
    <form-beans>
        <form-bean name="someForm" type="my.forms.SomeForm" />
    </form-beans>
    
    <action path="/someRequest"
                type="my.actions.SomeAction"
                name="someForm" scope="request" >
    <forward name="someAction" path="goesSomeWhere" />
    
    </action>
    
    View:
    
    <c:forEach items="${someForm.someList}" var="someThing" varStatus="someCounter">
        <c:out value="${someThing.foo}" /> <!-- assuming foo is a member in SomeThing DTO -->
    </c:forEach>
    
    推荐文章