首页 技术 正文
技术 2022年11月21日
0 收藏 511 点赞 2,562 浏览 2050 个字

一、Struts2入门案例

①引入jar包

Struts2 入门

②在src下创建struts.xml配置文件

Struts2 入门

<?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>

Struts2 入门

dtd约束条件查找路径:

Struts2 入门

③创建HelloWordAction类,实现Action接口,不仅定义了public String execute(),还提供了5个字符串类型的静态常量。如

success、none、error、input、login

Struts2 入门

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;
}

Struts2 入门

④配置文件web.xml。将全部请求定位到指定的Struts 2过滤器中

Struts2 入门

index.jsp页面:

并引用 taglib指令<%@taglib uri=”/struts-tags” prefix=”s” %>

注:form表单的action属性名应该和struts.xml的action一致

Struts2 入门

<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>

Struts2 入门

实现效果:

Struts2 入门


二、实现自动装配,将action类中的属性 包装到一个实体类User。然后在action类中定义私有属性User,进行封装。在index.jsp页面即可使用User对象点出其属性

Struts2 入门


三、登录案例:

Struts2 入门

实现效果:

Struts2 入门

Struts2 入门


四、如何使页面上还是username,也能实现 自动装配呢?[模型驱动–ModelDriven]

让Action实现一个ModelDriven<User>,其次手动实例化User对象,并实现该方法,返回user

Struts2 入门

Struts2 入门


五、Struts2访问ServletAPI对象获取Session。

分为两类:①解耦的访问方式 ②耦合的访问方式

关键代码:

1、耦合一。

获取到session并返回一个HttpSession.以及session.setAttribute方法获取到username

?

123 //耦合<br>   private HttpServletRequest request;HttpSession session2 = ServletActionContext.getRequest().getSession();session2.setAttribute("uname", user.getUsername());

2、耦合二。

实现ServletRequestAware接口,并重写其方法,定义一个Request属性并进行封装

Struts2 入门

?

1 request.getSession().setAttribute("uname", user.getUsername());

  

3、解耦合一

使用ActionContex类获取ServletAPI对象对应的Map对象

?

12 private Map<String, Object> map;<br>Map<String, Object> session = ActionContext.getContext().getSession();session.put("uname",user.getUsername());

 Struts2 入门

4、解耦合二  注入[IOC思想]。实现SessionAware接口,获取到Map集合

?

1 map.put("uname", user.getUsername());

 Struts2 入门


六、struts2常用表单标签

Struts2 入门

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,965
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781