struts2.0学习笔记1

小女子初来乍道,贴上自己学习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>保存就好了~~~

可能在表达上有不准确的地方,还请大家多多指教~~小女子这厢有礼了~~

你可能感兴趣的:(java,apache,jsp,xml,struts)