Struts(2010-8-5)

来源:互联网 发布:uploadify php demo 编辑:程序博客网 时间:2024/06/05 17:52

    今天又开始重新学框架

    Struts

    Struts框架有两种方式,第一种要有form的,第二种是代理from的,

    第一种写法:

 

 <struts-config>

  <data-sources />

  <form-beans>

  <form-bean name="AddStzActionForm" type="stz.struts.form.AddStzActionForm"></form-bean>

  </form-beans>

  <global-exceptions />

  <global-forwards />

  <action-mappings >

  <action 

  attribute="AddStzActionForm"

  input="/Dept.jsp" 

  name="AddStzActionForm"

  path="/Dept"

  scope="request"

  type="stz.struts.action.AddStzAction">

  <forward name="ok" path="/Result.jsp"/>

  </action>

  </action-mappings>

  <message-resources parameter="stz.struts.ApplicationResources" />

</struts-config>

 

Action写法

public class AddStzAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

// TODO Auto-generated method stub

 

AddStzActionForm addStzActionForm =(AddStzActionForm)form ;

DeptBean dept=new DeptBean();

dept.setDeptNo(addStzActionForm.getDeptNo());

dept.setDname(addStzActionForm.getDname());

dept.setLoc(addStzActionForm.getLoc());

//dept.setDname("stz");

request.setAttribute("Dept", dept);

System.out.print(dept);

return mapping.findForward("ok");

//return super.execute(mapping, form, request, response);

}

 

    第二种写法:

<struts-config>

  <data-sources />

  <form-beans >

 <!--这里是内置包中的form-->

  <form-bean name="DeptForm" type="org.apache.struts.action.DynaActionForm"></form-bean>

   <!--这里用到了那个javaBean对象-->

  <form-bean name="deptBean" type="Stz.Bean.DeptBean"></form-bean>

  </form-beans>

  <global-exceptions />

  <global-forwards />

  <action-mappings >

  <action

  attribute="addDeptForm"

  name="DeptForm"

  input="DeptForm"

  scope="request"

  parameter="method"

  path="/deptAction"

  type="Stz.DynStruts.DepAction">

  <forward name="ok" path="/Success.jsp"></forward>

  <forward name="fail" path="/fail.jsp"></forward>


  </action>

  </action-mappings>

  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />

</struts-config>

Action 写法

public class DepAction extends DispatchAction {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

// TODO Auto-generated method stub

return super.execute(mapping, form, request, response);

}

 

public ActionForward AddDept(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

 

DynaActionForm dynForm = (DynaActionForm) form;

DeptBean dept = (DeptBean) dynForm.get("deptBean");

ActionMessages msgs = new ActionMessages();// 错误机制

if (dept.getDeptNo() <= 0) {

msgs.add("deptNo", new ActionMessage("addDept.deptNo.err"));

}

if ("".equals(dept.getDname())) {

msgs.add("dname", new ActionMessage("addDept.dname.err"));

}

if ("".equals(dept.getLoc())) {

msgs.add("loc", new ActionMessage("addDept.loc.err"));

 

}

if(!msgs.isEmpty()){

saveErrors(request, msgs);

return mapping.findForward("input");

}

   request.setAttribute("Dept", dept);

return mapping.findForward("ok");

}

 

}

   第一种与第二种基本相似啦,就是代理的就不用谢ActionForm啦,

   现在在想,有了Struts就不用servlet了吧,

   struts的原理也就是这样啦,通过webConfig.xml加载struts,然后通过请求到struts.config

中找到ActionForm,然后再到Action中处理业务,在根据不同的情况转到不同的页面。

 

原创粉丝点击