Struts 2入门案例
来源:互联网 发布:lua 脚本 java 编辑:程序博客网 时间:2024/06/05 14:32
Struts2 MVC框架,
Struts2-Core Struts2核心包
Xwork-core Xwork 核心,构建基础
JavaSist-GA 底层字节码生成
File-upload 文件上传
--------------------
commons-io IO操作
commons-lang 数据类型的处理工具类
freemarker 模板引擎
ognl 表达式
1.pom.xml
2.配置web.xml
配置的是什么?
解析:过滤器 核心过滤器 StrutsPrepareAndExcuteFilter
3.view视图
<s:form name="form1" method="post" action="login">
请输入用户名: <s:textfield name="username"></s:textfield> <br/>
<s:textfield name="password"></s:textfield><br/>
<s:submit value="登陆"></s:submit>
</s:form>
4.定制Action
public class UserAction implements Action{
//SUCCESS NONE INPUT LOGIN ERROR
//SpringMvc Controller
public String execute() throws Exception {
return SUCCESS;
}
}
5.struts.xml
根节点Struts节点
<package name="default" namespace="/" extends="struts-default">
<action name="userAction" class="cn.happy.action.UserAction">
<result name="success">/success.jsp</result>
</action>
</package>
6.部署运行
Struts2-Core Struts2核心包
Xwork-core Xwork 核心,构建基础
JavaSist-GA 底层字节码生成
File-upload 文件上传
--------------------
commons-io IO操作
commons-lang 数据类型的处理工具类
freemarker 模板引擎
ognl 表达式
1.pom.xml
<!--获取ServletAPI--><dependency> <groupId>javaee</groupId> <artifactId>javaee-api</artifactId> <version>5</version></dependency><dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.4.1</version></dependency><dependency> <groupId>org.apache.struts.xwork</groupId> <artifactId>xwork-core</artifactId> <version>2.3.4.1</version></dependency>
2.配置web.xml
配置的是什么?
解析:过滤器 核心过滤器 StrutsPrepareAndExcuteFilter
3.view视图
<s:form name="form1" method="post" action="login">
请输入用户名: <s:textfield name="username"></s:textfield> <br/>
<s:textfield name="password"></s:textfield><br/>
<s:submit value="登陆"></s:submit>
</s:form>
4.定制Action
public class UserAction implements Action{
//SUCCESS NONE INPUT LOGIN ERROR
//SpringMvc Controller
public String execute() throws Exception {
return SUCCESS;
}
}
5.struts.xml
根节点Struts节点
<package name="default" namespace="/" extends="struts-default">
<action name="userAction" class="cn.happy.action.UserAction">
<result name="success">/success.jsp</result>
</action>
</package>
6.部署运行
3.自动装配
Struts2 自动装配 AutoAWired(PageUI ----->控制器属性)
拦截器
领域模型的自动装配
4.ServletAPI 去获取常见对象Session ,request
与Servlet API解耦的访问方式
方案一: 对Servlet API进行封装 ,借助ActionContext
--->01.使用ActionContext类获取ServletAPI对象对应的Map对象
方案二:向Action中注入ServletAPI对象对应的Map对象
--->02.Struts2向Action注入ServletAPI对象对应的Map对象
与Servlet API耦合的访问方式
方式一:通过ActionContext的子类ServletActionContext实现
方式二:向Action实例注入Servlet API对象
入门案例
pom.xml
<!--获取ServletAPI--><dependency> <groupId>javaee</groupId> <artifactId>javaee-api</artifactId> <version>5</version></dependency><dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.4.1</version></dependency><dependency> <groupId>org.apache.struts.xwork</groupId> <artifactId>xwork-core</artifactId> <version>2.3.4.1</version></dependency>
web.xml<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>/*</url-pattern></filter-mapping>HellowordAction类
public class HelloWordAction implements Action { //请输入用户的姓名 private String name=""; //向用户现实的信息 private String message=""; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } /** * excute方法,当struts2处理用户请求时,在默认配置下调用的方法 * @return * @throws Exception */ public String execute() throws Exception { //根据用户输入的姓名,进行“Hello,xxx"的封装 this.setMessage("Hello,"+this.getName()+"!"); //处理完毕,返回”helloword“ return "ss"; }}struts.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <!--创建一个default包,继承自Struts2的struts-default包--> <package name="default" namespace="/" extends="struts-default"> <!--接受处理用户的/helloword.action请求,并根据返回结果,完成跳转--> <action name="helloword" class="cn.struts.one.HelloWordAction"> <!--结果为”helloword时,跳转至helloword.jsp页面--> <result name="ss">helloword.jsp</result> </action> </package></struts>运行效果图(1)
(2)
上课案例:UserINfo类public class UserINfo { private String username; private String password;UserAction类public class UsesrAction implements Action { private UserINfo userINfo; public UserINfo getUserINfo() { return userINfo; } public void setUserINfo(UserINfo userINfo) { this.userINfo = userINfo; } public String execute() throws Exception { if ("admin".equals(userINfo.getUsername())&&"admin".equals(userINfo.getPassword())) { //登录成功显示用户 //第一种方式 session ActionContext context=ActionContext.getContext(); Map<String,Object> map=context.getSession(); map.put("username",userINfo.getUsername()); //第二种方式 session /* HttpSession session = ServletActionContext.getRequest().getSession(); session.setAttribute("username",userINfo.getUsername());*/ /* 放入值栈 (1)*/ ValueStack valueStack = ActionContext.getContext().getValueStack(); valueStack.push(map); /* 放入值栈 (2)*/ /* HttpServletRequest request = ServletActionContext.getRequest(); ValueStack vs= (ValueStack) request.getAttribute("struts.valueStack"); request.setAttribute("username",userINfo.getUsername());*/ /*第三种方式 request */ /* HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("username",userINfo.getUsername());*/ /*第四种方式 application */ /* ServletContext servletContext = ServletActionContext.getServletContext(); servletContext.setAttribute("username",userINfo.getUsername());*/ return SUCCESS; }else { return INPUT; } }}struts.xml
<package name="default" namespace="/" extends="struts-default"> <action name="useraction" class="cn.struts.UsesrAction"> <result name="success">/success.jsp</result> <result name="input">1.jsp</result> </action></package>1.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib prefix="s" uri="/struts-tags" %><html><head> <title>Title</title></head><body><s:form method="POST" action="useraction"> <%--性能低--%> 请输入用户名:<s:textfield name="userINfo.username"></s:textfield><br/> <s:textfield name="userINfo.password"></s:textfield> <s:submit value="登陆"></s:submit></s:form></body></html>success.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><%@ taglib prefix="s" uri="/struts-tags" %><html><head> <title>Title</title></head><body><s:debug/><%--第一种方式 session<h2>欢迎</h2> <s:property value="userINfo.username"/>--%><%--第二种方式 session<h2>欢迎</h2> <s:property value="#session.username"/>--%><%--第三种方式 request --%><%--<h2>欧叶</h2><s:property value="#request.username"/>--%><%--第四种方式 application--%><%--<h2>啦啦</h2><s:property value="#application.username"></s:property>--%><%--<s:property value="username"></s:property>--%><hr/>${username}</body></html>
阅读全文
0 0
- Struts 2入门案例
- Struts入门案例
- struts入门案例
- Struts 入门案例
- struts入门案例 登录
- Struts入门案例
- struts入门案例
- Struts(2)Struts快速入门案例和使用filter配合Struts,解决中文乱码问题
- struts案例2-登录验证
- Struts 2 OGNL及案例
- 关于struts与spring整合的一个小案例入门
- struts 2 入门 1
- Struts 2 入门
- Struts 2 入门实例
- Struts 2基础入门
- Struts 2基础入门
- (2) freemarker入门案例2
- php-smarty入门案例2
- 数据实验7倒置无头节点单链表
- Spring(二、Spring IOC)
- CSS 布局初探
- 运行scrapy框架报错ModuleNotFoundError: No module named 'win32api' ,下载安装包也不行的解决办法。
- XML
- Struts 2入门案例
- XML_DTD
- C++风格_格式
- XML解析
- 基础练习 数列特征
- C语言——方程求解
- 面试官初体验
- 1006. 换个格式输出整数 (15)
- OOAD