版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Struts2
Struts2的常量配置
在Struts2的框架中,提供了非常多的常量:(在default.properties)
- struts.i18n.encoding=UTF-8 ----Struts2中所有的post请求的中文乱码不用处理。
- struts.action.extension=action, ----Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写。
在Struts2中修改一些常量的值: - 修改常量的值,可以有三个位置进行修正:
- struts.xml中进行修改
<constant name="struts.action.extension" value="action"/>
- struts.properties中进行修改
struts.action.extension="action"
- web.xml中进行修改
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>xyz</param-value>
</init-param>
分模块开发的配置
- include的配置
<include file="/Struts2/src/strutsdemo/struts_demo.xml"/>
Action的访问
Action的写法(三种)
- Action类是POJO的类
package struts2test2;
/**
* Action的编写方式:Action是一个POJO类
* @author Administrator
*
*/
public class ActionDemo1 {
public String execute() {
System.out.println("ActionDemo1执行了。。。");
return null;
}
}
- Action类实现一个Action的接口
package struts2test2;
import com.opensymphony.xwork2.Action;
/**
* Action的编写方式二,实现一个Action的接口
* @author Administrator
*
*/
public class ActionDemo2 implements Action{
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("actionDemo2执行了。。。");
return null;
}
}
实现接口的这种方式,提供了五个常量(5个逻辑视图的名称)
* SUCCESS :成功了
* ERROR :失败
* LOGIN :登入出错页面
* INPUT :表单校验的时候出错
* NONE :不跳转
- Action类继承ActionSupport类
package struts2test2;
import com.opensymphony.xwork2.ActionSupport;
/**
* Action的编写方式三:Action继承ActionSupport类
* @author Administrator
*
*/
public class ActionDemo3 extends ActionSupport{
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("ActionDemo3执行了。。。");
return NONE;
}
}
ActionSupport中提供了数据校验、国际化等一系列的方法
Action的访问
通过method设置
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="${ pageContext.request.contextPath }/userFind.action">查询用户</a><br/>
<a href="${ pageContext.request.contextPath }/userUpdate.action">修改用户</a><br/>
<a href="${ pageContext.request.contextPath }/userDelete.action">删除用户</a><br/>
<a href="${ pageContext.request.contextPath }/userSave.action">保存用户</a><br/>
</body>
</html>
通过通配符的方式进行配置(*****)
<h3>通过通配符的方式</h3>
<a href="${ pageContext.request.contextPath }/product_find.action">查询商品</a><br/>
<a href="${ pageContext.request.contextPath }/product_update.action">修改商品</a><br/>
<a href="${ pageContext.request.contextPath }/product_delete.action">删除商品</a><br/>
<a href="${ pageContext.request.contextPath }/product_save.action">保存商品</a><br/>
动态方法访问
<h3>通过动态方法访问的方式</h3>
<a href="${ pageContext.request.contextPath }/customer!find.action">查询客户</a><br/>
<a href="${ pageContext.request.contextPath }/customer!update.action">修改客户</a><br/>
<a href="${ pageContext.request.contextPath }/customer!delete.action">删除客户</a><br/>
<a href="${ pageContext.request.contextPath }/customer!save.action">保存客户</a><br/>