Struts学习总结-(一)
一、Struts的概念
- struts是一个框架(frameset)
- struts是一个web框架
- 框架提高了程序的规范的同时,也约束了程序员写代码的自由
二、Struts的运行原理图
三、DispatchAction – 分派action
- 为了应对action过多的问题从而出现DispatchAction
- 把一类的请求放置到一个acton,易于维护和扩展
- struts-config.xml文件中的parameter用来区分功能,如:在提交表单或者跳转时把flag加上
<form method="post" action="/Strust/loginAll.do?flag=LoginUser" autocomplete="on">
<a href="/Strust/loginAll.do?flag=LoginOut">退出</a>
4.flag后面的名字与dispatchAction类中定义的方法名相同,从而达到调用的效果
5.*全局跳转
struts-config.xml文件中:<global-forward name=”golbal” path=””></global-forward>
所谓全局跳转就是所有的action都能跳转到该页面
所谓局部跳转就是指定action能跳转该页面
import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.jinner.domain.Users; import com.jinner.forms.userForm; import com.jinner.service.UserService; public class LoginClass extends DispatchAction { /** * @author 76429 * 使用分派action,需要自己重新命名函数 */ public ActionForward LoginUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 用于响应登录请求 // 把form转为对应的UserForm对象 userForm userForm = (userForm) form; System.out.println("用户名:" + userForm.getUserName()); // 简单认证 UserService userService = new UserService(); Users user = new Users(); user.setUsername(userForm.getUserName()); user.setPassword(userForm.getPasswd()); if (userService.checkUser(user)) { return mapping.findForward("success"); // 转发非重定向,request能用 } else { return mapping.findForward("fail"); } } public ActionForward LoginOut(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 用于响应退出请求 //把session清空 request.getSession().invalidate(); return mapping.findForward("login"); } }
<action-mappings> <action path="/loginAll" name="userform" type="com.jinner.actions.LoginClass" parameter="flag"> <!-- parameter用来区分用户的不同请求 (用于DispatchAction) --> <!-- 配置跳转 --> <!-- name为结果 --> <forward name="success" path="/WEB-INF/success.jsp"></forward> <forward name="fail" path="/WEB-INF/fail.jsp"></forward> <forward name="login" path="/WEB-INF/login.jsp"></forward> </action> </action-mappings>