小女子初来乍道,贴上自己学习struts2.0的笔记,希望各位大侠给点儿指点.小女子不胜感激~~
环境:myeclipse+tomcat5.5
1.建一个名为struts2.0的web project.把commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.12.jar,xwork-2.0.6.jar 5个jar包放在WebRoot-(WEB-INF)-lib下面
2.配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>struts2.0</display-name>
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
3.配置struts.xml
在src下新建一个名为"struts.xml"的文件,内容为:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
</struts>
基本的struts2.0环境已经完成
做一个简单的例子吧~~~
index.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="/struts-tags" prefix="s2"%><!-- 引入struts标签 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>login 页面</title>
</head>
<body>
<s2:form action="login" theme="simple">
<table>
<tr>
<td align="center">
username:
</td>
<td align="center">
<s2:textfield name="user.name"></s2:textfield>
</td>
</tr>
<tr>
<td align="center">
password:
</td>
<td align="center">
<s2:password name="user.pwd"></s2:password>
</td>
</tr>
<tr>
<td align="center">
<s2:a>注册</s2:a>
</td>
<td align="center">
<s2:submit value="submit"></s2:submit>
</td>
</tr>
</table>
</s2:form>
</body>
</html>
建立sucess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>scuess页面</title>
</head>
<body>
scuess!
<br>
</body>
</html>
建立erorr.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>erorr页面</title>
</head>
<body>
erorr!
<br>
</body>
</html>
建立LoginAction.java
package action;
import bean.User;
public class LoginAction {
private User user;
public String login() throws Exception {
//判断登录者的用户名与密码
if ("admin".equals(user.getName()) && "admin".equals(user.getPwd())) {
return "sucess";//如果满足条件就返回"sucess".
} else
return "error";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
新建User.java
package bean;
public class User {
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="action" extends="struts-default"><!--注意extends="struts-default"中没有".xml" -->
<action name="login" class="action.LoginAction"
method="login"><!-- 如果没有method属性,在action.LoginAction中就要用以execuse为名的方法 -->
<result name="sucess">/sucess.jsp</result><!-- 设置跳转页面 如果返回是sucess,就要跳转到根目录下的sucess.jsp页面 -->
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
总结:
上述的例子在网上一G就一大堆,初学的我感觉做一些简单的例子可以更好的去理解也能很快的上手,但是就是这么简单的例子我频频的出错,不过自认为是件很美妙的事.总结一下我出过的错吧~~~
1.起初我认为struts2XXXX.jar都放在lib下会更省事,没想到总是报错:
2008-10-30 17:18:22 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2008-10-30 17:18:22 org.apache.catalina.core.StandardContext start
严重: Context [/struts2.0] startup failed due to previous errors
我在G上一搜有很多情况都会导致这样的错误.主要是有几点 A class文件无法编译. B
tomcat的JDK版本与IDE的JDK不一致. C 缺少jar包.......
而导致我错的罪魁祸首就是struts2-plexus-plugin-2.0.11.jar,struts-sitegraph-plugin-2.0.11.jar和struts2-spring-plugin-2.0.11.jar这三个文件,把他们从项目里删除后,就一切OK了!原理嘛,我不知道,请大侠们指点指点~~
2.严重: Unable to find parent packages struts-default.xml
这就是为什么我在struts.xml中注释
<package name="action" extends="struts-default.xml"><!--注意extends="struts-default"中没有".xml" -->
都怪我粗心大意呀~~~
3.要先建立返回页面,再写struts.xml中的<result ....></result>
如是先写好struts.xml中的返回总是会报找不到XXXX.jsp.而实事上明明就存在呀,真是怪了.后来我把struts.xml中的<result ....></result>删除保存,再写上<result ....></result>保存就好了~~~
可能在表达上有不准确的地方,还请大家多多指教~~小女子这厢有礼了~~