一. 开发步骤
1..在web.xml中配置核心控制器FilterDispatcher
2..设计和编写视图组件(JSP)
3..编写用来实现视图组件和业务逻辑组件JavaBean
4..编写视图组件对应的业务控制器组件Action, 在该Action中调用业务逻辑组件JavaBean, 进行业务逻辑处理
5..配置控制器Action, 即修改struts.xml, 配置逻辑视图和物理视图间的跳转关系.二. 开发
(1). 我的工程: 下载地址
(2). 工程结构图
(3). 用myeclipse2017开发
新建web service project工程,
在web.xml中配置核心控制器:
<welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
编写视图组件(JSP页面) :
<body> <!-- 表单的action属性值为login.action --> <form method="post" action="login.action"> 用户名:<input name="userName" type="text" size="24"> <br> 密码:<input name="passWord" type="password" size="26"> <br> <input type="submit" value="登录"> </form> <hr> </body>
登录成功页面和失败页面 :
这个可以自己随便做一个, 或者使用index.jsp代替都可以
PS: 此处需要说明本人用html文件代替出错了, 不太知道为啥.
编写登录页面对应的业务逻辑组件LoginService :
package com.haha.Service; public class LoginService { private String userName; private String passWord; //从xml表里get和set public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } //处理用户登录的方法 public boolean login(String userName, String passWord) { boolean b=false; if(userName.equals("zhao")&&passWord.equals("123456")) { b=true; return b; } else{ b=false; return b; } } }
编写业务控制器Action :
package com.haha.Action; import com.haha.Service.LoginService; public class LoginAction { private String userName; private String passWord; //从LoginBean里get和set public String getUserNmae() { return userName; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } //return到Struts.xml配置文件中, 再由Struts.xml配置跳转页面 public String execute() throws Exception{ LoginService ls=new LoginService(); if(ls.login(userName, passWord)) { return "success"; } else{ return "error"; } } }
在Struts.xml中配置Action :
ps: 请别忘记导入Struts2.1包.
<action name="login" class="com.haha.Action.LoginAction">此句很重要 !!!!!!!
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="jsp" extends="struts-default"> <action name="login" class="com.haha.Action.LoginAction"> <result name="error" >/jsp/login.jsp</result> <result name="success" >/jsp/success.jsp</result> </action> </package> </struts>
测试结果: