Struts2 入门
一、Struts2入门案例
①引入jar包
②在src下创建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> <!-- 修改文件 tomact不用重启 -->
<constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default">
<!-- 第一个action -->
<action name="HelloWordAction" class="cn.happy.action.HelloWordAction">
<result name="success">index.jsp</result>
</action> </package> </struts>

dtd约束条件查找路径:
③创建HelloWordAction类,实现Action接口,不仅定义了public String execute(),还提供了5个字符串类型的静态常量。如
success、none、error、input、login

public class HelloWordAction implements Action{ private String name;
public String execute() throws Exception {
setName("Hello"+name);
return "success";
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}

④配置文件web.xml。将全部请求定位到指定的Struts 2过滤器中
index.jsp页面:
并引用 taglib指令<%@taglib uri="/struts-tags" prefix="s" %>
注:form表单的action属性名应该和struts.xml的action一致

<div>
<h1>
<s:property value="name"/> </h1>
</div> <div>
<form action="HelloWordAction" method="post">
请输入你的姓名:
<input name="name" type="text"><br/><br/>
<input type="submit" value="提交"> </form>
</div>

实现效果:
二、实现自动装配,将action类中的属性 包装到一个实体类User。然后在action类中定义私有属性User,进行封装。在index.jsp页面即可使用User对象点出其属性
三、登录案例:
实现效果:
四、如何使页面上还是username,也能实现 自动装配呢?[模型驱动--ModelDriven]
让Action实现一个ModelDriven<User>,其次手动实例化User对象,并实现该方法,返回user
五、Struts2访问ServletAPI对象获取Session。
分为两类:①解耦的访问方式 ②耦合的访问方式
关键代码:
1、耦合一。
获取到session并返回一个HttpSession.以及session.setAttribute方法获取到username
1
2
3
|
//耦合<br> private HttpServletRequest request; HttpSession session2 = ServletActionContext.getRequest().getSession(); session2.setAttribute( "uname" , user.getUsername()); |
2、耦合二。
实现ServletRequestAware接口,并重写其方法,定义一个Request属性并进行封装
1
|
request.getSession().setAttribute( "uname" , user.getUsername()); |
3、解耦合一
使用ActionContex类获取ServletAPI对象对应的Map对象
1
2
|
private Map<String, Object> map;<br>Map<String, Object> session = ActionContext.getContext().getSession(); session.put( "uname" ,user.getUsername()); |
4、解耦合二 注入[IOC思想]。实现SessionAware接口,获取到Map集合
1
|
map.put( "uname" , user.getUsername()); |
六、struts2常用表单标签
Struts2 入门的更多相关文章
- Struts2入门3 深入学习
Struts2入门3 深入学习 处理结果和异常 前言: Struts学习的差不多了,还有最后的一点就收官了就是结果处理和异常处理.前面学习Struts主要围绕就是Action以及struts.xml配 ...
- Struts2入门2 Struts2深入
Struts2入门2 Struts2深入 链接: http://pan.baidu.com/s/1rdCDh 密码: sm5h 前言: 前面学习那一节,搞得我是在是太痛苦了.因为在Web项目中确实不知 ...
- Struts2入门1 Struts2基础知识
Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...
- struts2入门程序
struts2入门程序 1.示例 搭建编程环境就先不说了,这里假设已经搭建好了编程环境,并且下好了strut2的jar包,接下来程序. 1.1 新建web项目 点击File->New->D ...
- struts2框架(1)---struts2入门
struts2框架 如果你之前在MVC模式的时候一直都是通过servlet,获取和返回数据,那么现在开始学习struts2框架, Struts是一个实现MVC设计模式的优秀的框架.它的许多优点我就不说 ...
- [java]struts2入门
摘要 本文是struts2入门,配置教程.如何在IntelJ Idea中进行手动配置.在使用idea新建struts2web项目的时候,在下载jar包的过程中,下载失败,没办法就直接手动进行下载jar ...
- ---web模型 --mvc和模型--struts2 入门
关于web模型: 早期的web 应用主要是静态页丽的浏览〈如新闻的制监),随着Internet的发展,web应用也变得越来越复杂,不仅要 和数据库进行交互 ,还要和用户进行交互,由此衍生了各种服务器端 ...
- Struts2入门示例(Myeclipse)
1.新建Web项目在lib导入struts-2.3.37核心基础jar包 2.在WebRoot新建2个JSP demo1.jsp <%@ page language="java&quo ...
- Struts2入门(六)——国际化
一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...
随机推荐
- 如何在windows下的Python开发工具IDLE里安装其他模块?
以安装Httplib2模块为例 1 下载模块 到 “https://code.google.com/p/httplib2/” 下载一款适合你的压缩包“httplib2-0.4.0.zip” 2 解压下 ...
- Java代码优化(长期更新)
前言 2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,我的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸 ...
- linux 安装rz sz命令
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz tar zxvf lrzsz-0.12.20.tar.gz cd lrzsz-0.1 ...
- IT基础架构规划方案二(计算机系统与机房规划规划)
计算机系统规划 服务器硬件选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...
- 解决Visual C++ Redistributable for Visual Studio 2015的安装问题
1. Visual C++ Redistributable for Visual Studio 2015系统要求:Windows 7情况下必须是Windows 7 with SP1.或者Windows ...
- Quartz.net配置文件实例及cron表达式详解
从XML文件创建作业 最新版本的quartz.net支持直接从xml文件创建作业,使用起来很方便.配置文件的格式可以参考下面的例子 <?xml version="1.0" e ...
- js 模块化的一些理解和es6模块化学习
模块化 1 IIFE 2 commonjs 3 浏览器中js的模块化 4 简单理解模块加载器的原理 5 es6 之前在参加百度前端技术学院做的小题目的时候,自己写模块的时候 都是写成立即调用表达式( ...
- JavaScript面向对象与原型
工厂模式:无法识别对象 function createObject(name, age) { //集中实例化的函数 var obj = new Object(); obj.name = name; o ...
- 前端Demo常用库文件链接
<!doctype html><html><head> <meta charset="UTF-8"> <title>前端 ...
- TinyMCE添加图片 路径自动处理成相对路径
默认情况下会自动转换你的图片路径如: 转换: /path/name.jpg 为 ../path/name.jpg 带有域名的路径也会被转换为相对路径. 需要修改一个设置convert_urls,官方文 ...