Struts2学习笔记(1)

本文介绍了Struts2框架的特点及其实现MVC模式的方式。详细讲述了如何通过配置文件进行页面导航,以及Action类的设计和参数处理技巧。同时,还探讨了不同Action实现方式的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2:

1)实现MVC的模式,结构清晰

2)具有丰富的标签(tag)

3)通过配置文件页面导航,便于后期维护

4)与Servlet API松散耦合,便于测试

例:

<package name="hello"(用于子包的继承) namespace="/"(action的根目录) extends="struts-default" (继承,此处为继承默认包)>

<action name="he"(在网页中的action的名称) class="..."(action所对应的类)method=""(该action所对应的方法,若方法为execute,可不写)>

<result name=""(action方法所返回的字符串)>/index.jsp</result>(根据返回字符串选择跳转的页面)

</action></package>

创建Action类:(依情况选择)1)普通Java类:编写public String execute()方法2)实现Action接口,重写execute()方法3)继承ActionSupport类,重写execute()方法(该类中功能较为全面,可能会有冗余)Action:1)控制业务逻辑(如果业务逻辑复杂,可以把业务逻辑构建为业务类)2)返回结果字符串3)方便处理数组Action接受参数:一、Struts2提供了接口用于Action与网页交互,通过将表单的参数名与action的属性名设置相同,并封装SetXXX与GetXXX方法。中文乱码:
<constant name="struts.i18n.encoding" value="utf-8"/>

可以在Struts配置文件中,设置开发模式,使得输出更多日志信息或debug信息(当为false时,为产品模式(proMode)):

<constant name="struts-devMode" value="true"/>





页面显示:
action所传数据:

<%@ taglib prefix="s" uri="struts-tags" %>

<s:property name="" value="" />(显示数据)

上述做法不好之处是:如果实体类的属性非常多,那么Action中也要定义相同的属性。

二、
通过JavaBean方式:

将模型数据从Action中分离出来

1)定义实体类,并为实体类添加属性以及SetXXX与GetXXX方法,名字与页面表单属性名相同

2)为Action添加尸体属性以及SetXXX与GetXXX方法

3)修改表单参数name为实体对象名.属性名

4)取值通过<s:property value="对象名.属性名"/>的形式

这种做法不好的地方是:JSP页面上表单域中的命名变得太长

三、

通过ModelDriven方式,让action类实现一个ModelDriven接口,同时实现接口中的方法:getModel()。

public class DeptAction implements ModelDriven<DeptAction>{

private Dept dept;

@Override

public DeptAction getModel() {

// TODO Auto-generated method stub

return null;

}

public String add(){

return "success";

}

public Dept getDept() {

return dept;

}

public void setDept(Dept dept) {

this.dept = dept;

}
}




Jsp的代码:

<form action="dept.action" method="post">

<input type="hidden" name="method:add"> deptno:<input

type="text" name="deptno"><br /> dname:<input type="text"

name="dname"><br /> loc:<input type="text" name="loc"><br />

<input type="submit" name="submit" value="添加部门">

</form>





相较前两种,action和jsp都较为简单。

相关机制:http://blog.youkuaiyun.com/li_tengfei/article/details/6098145




编写struts.xml时无提示,可查看:
http://blog.youkuaiyun.com/u012561176/article/details/43878067

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值