struts2的开发步骤

1.加载struts2的jar包到类路径中。

  • struts2-core-2.0.11.jar
  • xwork-2.0.4.jar
  • ognl-2.6.11.jar
  • freemarker-2.3.8.jar
  • commons-logging-1.0.4.jar

2.配置struts2的核心控制器FilterDispatcher类。

WebRoot\WEB-INF\web.xml文件中

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern><!--过滤所有的请求信息-->
 </filter-mapping>

 

3.增加struts2的配置文件到源代码文件夹中,会拷贝到WebRoot\WEB-INF\classes\文件夹。

 struts2的核心配置文件,可以从struts2-core-2.0.11.jar里拷贝。

先加载struts-default.xml

指定请求action的url的后缀是什么?.do还是.action

<constant name="struts.action.extension" value="do,action" />

新增一个package 继承struts-default包。

 <package name="default" extends="struts-default">
 </package>

 

4.增加一个struts2的配置文件struts.properties,这个为了一些额外的配置。

struts.configuration.xml.reload = true
struts.i18n.reload = true
struts.multipart.saveDir=/tmp/
struts.multipart.maxSize=2097152000
struts.ui.theme=simple
struts.action.extension=do,action
struts.locale=en
struts.i18n.encoding = UTF-8
struts.custom.i18n.resources=messages

 

位置WebRoot\WEB-INF\classes\文件夹

这个信息都可以通过struts.xml文件中的constant元素实现。

 

5.开发一个请求的过程

a).设计一个url http://localhost:8080/program_name/package_namespace/action_name.action

b).在struts.xml中增加一个action配置。

<action name="studentList" class="com.ps.t1.action.StudentAction" method="execute">
   <interceptor-ref name="defaultStack" />
   <result name="listView" type="dispatcher">/jsp/t1/studentList.jsp</result>
</action> 

name属性是url中action的名称字符串。

class属性是action对应的类的完整类名。

method属性是调用这个类的哪个方法,默认是execute方法。

interceptor元素是这个请求会经过哪些拦截器处理。

result元素是这个action可能会走的返回页面,用一个字符串标识,method那个方法返回这个字符串则走这个返回页面。

result元素的type属性,默认是dispatcher(请求转发),其他类型有各自的用途。

result元素的值是这个result对应的jsp页面的路径。

c).新增一个Action类

这个是一个普通的java类,只要有action元素中method属性指定的方法就可以,然后这个方法返回result元素的name属性的字符串,以标识返回哪个页面。

package com.ps.t1.action;

import java.util.ArrayList;
import java.util.List;

import com.ps.t1.empty.Student;

public class StudentAction{
	private List<Student> studentList = new ArrayList<Student>();
	
	public String execute(){
		Student _zhangsan = new Student();
		_zhangsan.setId(1);
		_zhangsan.setName("张三");
		_zhangsan.setAge(20);
		
		this.studentList.add(_zhangsan);
		
		return "listView";
	}

	public List<Student> getStudentList() {
		return studentList;
	}

	public void setStudentList(List<Student> studentList) {
		this.studentList = studentList;
	}
}

 d).新增一个JSP页面。

<%@ page language="java" import="java.util.*,com.ps.t1.empty.Student" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title></title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>
    <% 
    	List<Student> studentList = (List<Student>) request.getAttribute("studentList");
    	for(Student _stu : studentList){
    		out.println(_stu.toString());
    	}
     %>
  </body>
</html>

 e).重新部署服务,重启Tomcat,测试这个url

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值