现在的位置: 首页 > 综合 > 正文

struts2的第一个程序

2013年03月02日 ⁄ 综合 ⁄ 共 2338字 ⁄ 字号 评论关闭

         还是比较高兴的呀,呼呼。我觉得我就应该是这种学习的方式,前面的学习方式都不怎么样,一知半解,然后就照着书去敲代码,那样代码,思想终究不是自己,错了自己也是无法改正的。而如果是自己真的曾经想过,并且快乐的实现了,并且其中出了些许错误,在自己的一步步排除查找下,找到错误并改正,这样才能真正的了解其中的精髓。

       这第一个struts2架构的web程序,我是一步步配置,一步步写出来的。具体的最开始的配置,前面的文章我写了,这次我说一说我对struts2的运行过程的个人见解,我只是个学生,肯定研究的不神,如果有错误,请及时告之改正。

       首先,我又重新对web.xml这个文件的作用又重新认识了。我认为一个web网页的加载,应该是先分析的web.xml,然后将已经分析清楚的结构挂到tomcat,当然当整个web.xml中的东西都分析清楚之后,你这时候在更新就不能更新了,必须重新upload。而这时候,如果你用了struts2,并且来了个action。(当然你起初是加了filter的)这个时候系统根据以前分析的:“好,有人用struts2的filter了,并且和我action的name一样的action。好吧,我就调用那个action处理一下吧”,然后调用了action的类分析并且接受参数,然后处理后要返回一个String类型的返回值,来告诉struts2:“你处理的结果是什么呀?我下一步怎么弄呀,到底去哪一个界面呀?”好吧,找到了哪一个界面了,当然这期间你是可以传参数给下一个界面的。然后在下一个界面,分析action传过来的参数。多么和谐呀,多么美妙呀。

看我的struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<package name="struts2" extends="struts-default">
		<action name="query" class="com.QueryAction"><!-- 看这里,是一个叫query的action,并且它对应的类是QueryAction -->
			<result name="success"> <!-- 当result是success是去下面的界面 -->
				/chapter7/success.jsp
			</result>
			<result name="notfound"><!-- 当result是notfound是去下面的界面 -->
				/chapter7/notfound.jsp
			</result>
		</action>
	</package>
</struts>

然后看我的query.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Query.jsp' starting page</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">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  	<div>
  		<form name="myform" action="query"> <!-- query是一个action的时候,不需要加什么路径,因为对于action来说,都是唯一确定的,并且在struts架构中,所以你不用告诉它:在哪里 -->
  			<table id="mytable" >
  				<tr> 
  					<td>
  						book name:<input name="name" id="name" type="text"/>
  					</td>
  				</tr>
  				<tr>
  					<td>
  					</td>
  				</tr>
  				<tr>
  					<td>
  						<input name="query" id="query" type="submit" value="query" />
  					</td>
  				</tr>
  			</table>
  		</form>
  	</div>
  </body>
</html>

<s:form action="query">
  	<s:textfield label="the book`s name" name="name" ></s:textfield>
  	<s:submit value="query"></s:submit>
  </s:form>

抱歉!评论已关闭.