1.Struts2 简单来说就是实现了请求和视图(前台页面)的分离。
2.Struts.xml中,package标签,实际意义与JAVA代码中定义的package是一样的,用于把下属的一堆Action都包起来,区别重复命名。
3.namepace = "" 相当于不写namespace ,都算作默认的namespace配置。 这种情况下会在所有的package中寻找对应的action名,只要名字相同即可,无论包名。 一般情况下,这种方法可以用于处理其他所有action都处理不了的业务或者功能。
4.推荐使用 继承ActionSupport类 的方法。
5.页面路径一律配置绝对路径,
之后在 JSP的 head标签中添加
6.任何配置进action的方法,只要返回值是个String就都可以使用。
默认可以使用的几个变量的返回值:SUCCESS ERROR等,是因为ActionSupport类中已经定义了这些常量,所以我们的类继承它之后,也可以使用这些常量(这些常量已经在源码中定义为了 String)。
2.Struts.xml中,package标签,实际意义与JAVA代码中定义的package是一样的,用于把下属的一堆Action都包起来,区别重复命名。
<package name="main" namespace="/" extends="struts-default">
<action name="Book1" class = "com.kewen.Book.BookAction1"/ >
<action name="Book2" class = "com.kewen.Book.BookAction2"/ >
</package>
3.namepace = "" 相当于不写namespace ,都算作默认的namespace配置。 这种情况下会在所有的package中寻找对应的action名,只要名字相同即可,无论包名。 一般情况下,这种方法可以用于处理其他所有action都处理不了的业务或者功能。
4.推荐使用 继承ActionSupport类 的方法。
5.页面路径一律配置绝对路径,
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri = "/struts-tags" prefix = "struts"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
之后在 JSP的 head标签中添加
<head>
[color=red]<base href="<%=basePath%>">[/color]
<title>My JSP 'initAddBook.jsp' starting page</title>
</head>
这样配置出来的就是页面的绝对路径,否则Struts中会找不到对应的页面。
<a href = "<struts:url action = "initAddBook" />">添加书籍</a>
<a href = "<struts:url action = "listBook" />">书籍列表</a>
<a href = "<struts:url action = "clearBook" />">清空书籍列表</a>
6.任何配置进action的方法,只要返回值是个String就都可以使用。
默认可以使用的几个变量的返回值:SUCCESS ERROR等,是因为ActionSupport类中已经定义了这些常量,所以我们的类继承它之后,也可以使用这些常量(这些常量已经在源码中定义为了 String)。