struts框架基础
关于框架的学习:
- 需要理解框架的底层原理(难点)
- 掌握框架的规则
mvc框架作用:
- 将url映射到java类
- 获取用户提交的数据
- 渲染数据
- 控制显示视图
struts2:
目录介绍:
- apps: 项目案例
- docs: 学习文档
- lib: jar包
- src: strust2源码
struts2使用:
- 导入jar包
配置web.xml文件
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
src下添加struts.xml配置文件
- 编写action类:
- 在struts2中默认执行execute方法
- 方法均无参数,为public,返回值为String
在struts.xml中配置action类
struts2是基于包来管理
<struts> <package name="hello" extends="struts-default"> <!-- action中name为请求名称 --> <action name="hello" class="com.eric.action.HelloAction"> <!-- 和action类返回值匹配 --> <result name="success">/index.jsp</result> </action> </package> </struts>
package: extends必须写,直接或间接继承
struts-dafault
,name自定义- action: name是请求名称,不需要
/
,class对应action完全限定名 - result: 结果集,name对应action中方法返回值匹配,默认是
"success"
struts登陆界面案例
配置web.xml
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
创建struts.xml文件
编辑jsp文件
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Login</title> </head> <body> <form action="login.action" method="post"> <!-- .action结尾会经过过滤器 --> username:<input type="text" name="name"/> <br> password:<input type="password" name="pwd"/> <br> <input type="submit" value="login"/> </form> </body> </html>
- form中的action需要有扩展名,且要和web.xml文件中过滤器的配置一致
编辑Action类
package com.eric.action; public class LoginAction { // 变量名称和jsp中数据属性name一致 // 类型转换自动完成 private String name; private String pwd; // 处理方法 public String execute() { if("char".equals(name) && "1234".equals(pwd)) { return "success"; } else { return "failed"; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }
- action中的变量名称要和jsp页面中的属性名称一致
- 并且要提供get和set方法
- struts2会自动将表单的请求数据设置到对应的变量上
- 可以在jsp中直接取值,不需要调用
request.setAttribute()
配置struts.xml
<struts> <package name="default" namespace="/" extends="struts-default"> <!-- 此处不需要添加.action扩展名 --> <action name="login" class="com.eric.action.LoginAction"> <!-- 可以配置type,默认是转发dispatcher --> <result name="success">/success.jsp</result> <result name="failed">/login.jsp</result> </action> </package> </struts>