﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-开拓自己-文章分类-j2ee</title><link>http://www.blogjava.net/wwwlike/category/18507.html</link><description>NeverDrop</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 15:37:56 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 15:37:56 GMT</pubDate><ttl>60</ttl><item><title>Hibernate中的 一对一</title><link>http://www.blogjava.net/wwwlike/articles/91667.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Wed, 03 Jan 2007 17:54:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91667.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91667.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91667.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91667.html</trackback:ping><description><![CDATA[
		<p>这里所说的1对1 其实就是表和表的之间的关系！ 其实1对1是1对多的特例，1对多是多对多的特例。<br />在hibernate里实现1对1 其实就把把表用对象来表示！让2个表产生一对一的关系！例如 一个人有一个身份<br />证。是先有人，后才有的身份证的！所以 可以看做人的身份号ID是自己的主键，省份证的ID是自己的主键。而证表的ID引用人表的ID来当自己的外键！ 当我们想添加一个人的 时候！可以自动添加一个 身份出来！<br /><br />现在具体来说明下！<br />步骤：<br />1 新建设一个j2ee的web project<br />2 添加hibernate包，user libraries不选 白色框里2个都选 单选框选下面一个。<br />   2.1需要配置个数据连接 操作：new的下一步，复选框的沟去掉-》下一部门-》<br />   2.2建立一个存放sessionFoctory工厂的包如 org.hibernate--》完成<br /><br />3 这时候hibernate.cfg.xml产生 还产生了一个HibernateSessionFactory的session的工厂类<br /><br />4 需要给hibernate.cfg.xml里写数据库的连接：下面以sql数据库的连接来讲解：<br />4.1 在hibernate.cfg.xml的设计器里点：new<br />4.2 .Profile name:随便写 只要不重复<br />4.3如果没有你需要的Driver 就自己新建一个 点超级连接configure那个<br />4.4在下拉框里选你要连的数据库。如过你选sql server<br />4.5在url里  填jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs<br />4.6倒入sqlserver连java的3个jar包 点add jars选择你要的jars包 点确定<br />4.7填 name和pwd下一部——&gt;完成<br />至此数据库 hibernate.cfg.xml已经配置完毕。<br /><br />5下面需要把数据表  转成 类<br />讲解<br />1切换到数据库的模式下，选到你要转成类的表！<br />2右键，倒数第2个选<br />3选择一个包。一般我们起的名字叫bean<br />4第一个复选框 是说是否产生这个类的hbm.xml文件<br />5第2个复选框就是问 需要产生一个抽象的 类不<br />6 我们选择一个包，把前2个复选的点上 就ok了下一部<br />7给我们的主键 选择适合的增长方式！一般选native如果是外键就是foreign---&gt;完成<br /><br />6--另外一个类 雷同 我就不讲了只是 增长方式 用foreign表示 表示根据别的表来设置自己<br />  下面讲怎么把2个表的一对一关系 搞出来！<br />   增长一个人的时候 就会增长一个证 ！ 所以证 应该成为 人 类的一个属性，同时我们给他get,set 方法<br />  而且证里 id是通过人里id在设置的，所以 证里 也应该 包含人 这个类的对象作为属性！用老师的话说<br />就是你中有我，我中有你！testTable类 相当与人   car类相当与证   <br />alt+shift+s可以倒到属性的get 和set方法<br /><br />7配置他们各自的***.hbm.xml文件<br /><br />作为主表的 人类（textTable）中 应该加如下代码：（代码应写在&lt;class&gt;&lt;/class&gt;里）<br />&lt;one-to-one name="car"  class="org.bean.Car" cascade="all"&gt;&lt;/one-to-one&gt;<br />解释一下：one-to-one表示现在2个表的关系是一对一 name里的car就是 textTable 里一个属性 的对象名<br />这个对象就是 我要关联那个表的类的对象名！ cascade=''all" 表示现在这个表是主动表<br /><br />作为从表的 证类（Car）中加入如下代码：<br />&lt;one-to-one name="testTable" class="org.bean.TestTable"&gt;&lt;/one-to-one&gt;<br />补充说明下：虽然这个类和 这个xml在一个文件夹里，但是并不表示一个包里，所以我们写class的值的时候要写全称的路径。<br />重点:因为 这个表是从表，他的id要跟随的主表的变化而变化 所以 因该在id里加 如：<br />&lt;param name="property"&gt;testTable&lt;/param&gt;<br />解释：name="property"表示引用的是属性   testTable表示引用的值 这个值就是另一个类 ，他现在作为一个属性放在了当前类里。这样：我们就把主表的主键和从表的主键关联起来了！并且从表的主键引用主表的主键当自己的外键。<br /><br />8以上完成了 2个表的连接，关系操作！了   下面 我们就要进行一个插入操作 ，看我们插入一个人的时候，是否也能插入一个证！<br /><br />9新建设servlet其中  注意他在web-xml中是如何配置的！到时候jsp里访问就容易了！<br />   新建2个表的类的对象！ 给其中不是相关的属性 通过set方法 给值。 <br />如：Car car=new Car();<br />  TestTable testTable=new TestTable();<br />testTable.setUsername("wudi");<br />  testTable.setCar(car);<br />  car.setTestTable(testTable);<br />  car.setCarMoney(new Integer(123));<br /><br />需要调用 主表的 dao类中的save方法 进行插入 同时把主表的对象 作为参数传过去<br /><br />9建立一个存放Dao的包dao 和一个我们要在TestTable这个表上进行一系列操作的类  TestTableDao<br />   public void save(TestTable table)<br /> {</p>
		<p>  Session session=HibernateSessionFactory.getSession();<br />  Transaction tx=session.beginTransaction();<br />  <br />  session.save(table);<br />  tx.commit();<br /> }<br />说明 先产生hibernateSessionFactory工厂子类的对象！然后 用他产生事物的对象！<br />在用他调用save ()方法 其实这就是hql语言 就是insert方法！最后提交事物<br /> </p>
<img src ="http://www.blogjava.net/wwwlike/aggbug/91667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-04 01:54 <a href="http://www.blogjava.net/wwwlike/articles/91667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2ee中jdbc的游标的移动</title><link>http://www.blogjava.net/wwwlike/articles/91441.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Tue, 02 Jan 2007 11:47:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91441.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91441.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91441.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91441.html</trackback:ping><description><![CDATA[举几个例子：<br />Statmement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONEY);<br />定义了一个可滚动的 只读的<br /><br />ResultSet=stmt.excuteQuey("sekect * from emp ")<br />rs.next()往下移<br />rs.last()移动到最后一条<br />rs.prevlous()往前移<br />rs.absolute(6)移动到第6条<br />rs.getRow()获得 现在是第几条记录<br />rs.isAfterLast()是否在最后一条记录后<br />rs.isLast()是否是最后一条记录<br /><br />介绍下DataSource&amp;RowSet<br />他们有属于一个新包！ javax.sql<br />这2个都是接口。<br />DataSource 来代替DriverManager，他们都和j2ee欣欣相关<br /><br /><br />RowSet 其实也是个ResultSet  <br />但是他支持 断开数据库 所有操作都在内存上执行<br />RowSet 支持javabean的标准！好处！<img src ="http://www.blogjava.net/wwwlike/aggbug/91441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-02 19:47 <a href="http://www.blogjava.net/wwwlike/articles/91441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2ee中jdbc中的事务</title><link>http://www.blogjava.net/wwwlike/articles/91436.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Tue, 02 Jan 2007 10:29:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91436.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91436.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91436.html</trackback:ping><description><![CDATA[conn.setAutoCommit(false);不让数据自动提交<br />stmt=conn.createStatement();<br />stmt.addBatch("语句1");<br />stmt.addBatch("语句2");<br />stmt.executeBatch();//批处理<br />conn.commit();//提交事务<br />cinn.setAutoCommit(true););//当conn回到初状态！能自动提交！<br /><br /><br />在这里面捕捉异常<br />catch(SQLException e)<br />{<br />e.printStackTrace();<br />try{<br />if(conn!=null)<br />{<br />conn.rollback();//回滚<br />conn.setAutoCommit(true);//当conn回到初状态！能自动提交！<br />}<br />catch(SQLException el)<br />{<br />el.printStackTrace();<br />}<br />}<br />}<img src ="http://www.blogjava.net/wwwlike/aggbug/91436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-02 18:29 <a href="http://www.blogjava.net/wwwlike/articles/91436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2ee中jDbc中的批处理addBatch()方法。</title><link>http://www.blogjava.net/wwwlike/articles/91435.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Tue, 02 Jan 2007 10:18:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91435.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91435.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91435.html</trackback:ping><description><![CDATA[Statememt<br />PreparedStatement 都有addBatch方法<br /><br />Statememt  stmt=conn.createStatement();<br />stmt.addBatch("insert inti .....");<br />stmt.addBatch("insert inti .....");<br />stmt.addBatch("insert inti .....");<br />stmt.executeBatch();<br />stmt.close();<br /><br />PreparedStatement  ps=conn.prepareStatement("insert Into biao values(?,?)");<br />ps.setInt(1,61);<br />ps.setInt(2,61);<br />ps.addBatch()<br />ps.setInt(1,61);<br />ps.setInt(2,61);<br />ps.addBatch()<br /><br />ps.executeBatch();<br />ps.close();<img src ="http://www.blogjava.net/wwwlike/aggbug/91435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-02 18:18 <a href="http://www.blogjava.net/wwwlike/articles/91435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在java中使用存储过程</title><link>http://www.blogjava.net/wwwlike/articles/91432.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Tue, 02 Jan 2007 10:06:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91432.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91432.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91432.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91432.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91432.html</trackback:ping><description><![CDATA[
		<p>以前用的是Statement 和 PreparedStatement<br />调用存储过程就用到<br />CallableStatement cstmt =conn.prepareCall("call p(?,?,?,?)");<br />声明 一个叫p的存储过程，需要4个参数 其中1，2为输入参数<br />3输出参数，4为输入输出参数（在sqlserver里没有这样的参数）<br /><br />是输出参数的 我们在程序里要说明一下如：<br />cstmt.registerOutParameter(3,Types.INTEGER)<br />表明这个是第3个问号上面的，切类型是int 型号的<br />cstmt.cstmt.registerOutParameter(4,Types.INTEGER)<br />输入输出参数也必须说明<br /><br />cstmt.setInt(1,3);<br />cstmt.setInt(2,3);<br />cstmt.setInt(4,3);  把3个输入参数给值；<br /><br />cstmt.execute();执行存储过程。<br /><br />System.out.println(cstmt.getInt(3));<br />System.out.println(cstmt.getInt(4));<br />现在就可以用cstmt.get方法来取值了<br /><br />最后cstmt.close要关闭</p>
<img src ="http://www.blogjava.net/wwwlike/aggbug/91432.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-02 18:06 <a href="http://www.blogjava.net/wwwlike/articles/91432.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>动态验证表单的一点说明</title><link>http://www.blogjava.net/wwwlike/articles/91079.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Sat, 30 Dec 2006 16:10:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91079.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91079.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91079.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91079.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91079.html</trackback:ping><description><![CDATA[
		<p>做一个登陆验证<br />表单里面是一个文本框 文本框后面那个是错误提示  <br />                                                                                       就是要验证的 函数  注意 一定要是validate  l 和f 要大写<br />&lt;html:form action="/login" method="post" focus="login" onsubmit="return validateLoginForm(this)"&gt;<br />&lt;html:text property="username" /&gt;&lt;html:errors property="username"/&gt;<br />&lt;/html&gt;<br />下面这条是用来生成javascript的 formName对应的就是配置文件里formbean的name<br />&lt;html:javascript formName="loginForm"/&gt;<br /><br /><br />配置文件<br /><br /><font color="#800080">&lt;form-beans &gt;<br />    &lt;form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm"&gt;<br />      &lt;form-property name="password" type="java.lang.String" /&gt;<br />      &lt;form-property name="username" type="java.lang.String" /&gt;<br />    &lt;/form-bean&gt;<br />&lt;/form-beans&gt;</font><br /><br />注意 type里写的是org.apache.struts.action.DynaActionForm 表明这个类是动态bean<br />下面2个是它的2个属性 注意 要个表单的property  一致<br /><br /><br /><font color="#800080">&lt;action<br />      attribute="loginForm"<br />      input="/login.jsp"<br />      name="loginForm"<br />      path="/login"<br />      scope="request"<br />      validate="true"<br />      type="org.eimhe.struts.action.LoginAction" /&gt;<br /></font>因为我们要来验证所以validate="true"   另外 attribute要写 且 等于name<br /><br /><br /><br /><font style="BACKGROUND-COLOR: #ff1493">&lt;plug-in className="org.apache.struts.validator.ValidatorPlugIn"&gt;<br />    &lt;set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /&gt;<br />  &lt;/plug-in&gt;<br /></font><br />value里写的一个是验证规则文件/WEB-INF/validator-rules.xml，<br />                              另一个是 自己写的具体验证的一个xml文件validation.xml<br />这个文件建立在web-inf文件夹里 用eclipse建立这个文件的方法是 在web-inf目录下1新建2其他3 base-xml<br />4 dtd-file 5写名字（validation）6select xml(选择dtd规格  ) 选择validator 1.13的那个<br /><br />添加验证的差件<br />ctrl+n<br />选择struts1.2 选择plug 在里面写ValidatorPlugIn找到这个插见 就可以了<br />属性写pathnames<br /><br />validation里写 :<br /><br />&lt;form-validation&gt;<br />&lt;formset&gt;<br />&lt;form name="loginForm"&gt;<br />&lt;field property="username" depends="required,mask" &gt;   property我就不说了<br />//depends  是要进行验证的2个方式 和<font style="BACKGROUND-COLOR: #ff1493">validator-rules.xml里的对应 </font><br />&lt;arg key="label.username"/&gt;  //属性文件里已经赋了值的一个变量！我们将会在验证时候用到的<br />&lt;var&gt;<br />&lt;var-name&gt;mask&lt;/var-name&gt;//mask的验证规则把 ，我现在还没怎么理解这个<br />&lt;var-value&gt;^[a-zA-Z]*$&lt;/var-value&gt;<br />&lt;/var&gt;<br />&lt;/field&gt;<br />&lt;/form&gt;<br />&lt;/formset&gt;<br />&lt;/form-validation&gt;<br /><br />//属性文件   ApplicationResources.propertites<br />//下面是在config里配置时写的<br /> &lt;message-resources parameter="org.eimhe.struts.ApplicationResources" /&gt;<br /><br />//这个文件是个java元文件放在一起的 不是和xml配置文件在一起<br />在src目录里<br /><br /># Resources for parameter 'org.eimhe.struts.ApplicationResources'<br /># Project eimheStrutsl2<br />label.username=your name<br />errors.required={0}is not null<br />errors.invalid={0}is not zimu<br /><br />errors.required这2个errors对应<font style="BACKGROUND-COLOR: #ff1493">validator-rules.xml里的 一些内容<br />houmian  =号 后面就是错误时候给出的提示框 {0}表示参数 会用validator.xml里 想对应的key 里的值<br /></font><br />zai  ApplicationResources里对应的值 这里对应的就是  your name<br /><br /><br />以上验证如果没有错误的化  就会到action里去。<br /><br /></p>
<img src ="http://www.blogjava.net/wwwlike/aggbug/91079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2006-12-31 00:10 <a href="http://www.blogjava.net/wwwlike/articles/91079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts-config 里配置的一点个人心得</title><link>http://www.blogjava.net/wwwlike/articles/88624.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Mon, 18 Dec 2006 12:19:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/88624.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/88624.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/88624.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/88624.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/88624.html</trackback:ping><description><![CDATA[
		<p> </p>
		<p>struts-config 里配置的一点个人心得</p>
		<p>在jsp里一般都是表单 提交 ，或是 超级连接 都是 用***.do来跳转</p>
		<p>最开始去的是 actionselvlet</p>
		<p>在这里面配置一些信息把  估计 HttpServletRequest,HttpServletResponse是在这时候产生了对象</p>
		<p>然后马上产生actionMapping的实例（所有跳转，表单的发送 都会去这个类里的 记住，这是个流程）</p>
		<p>然后会调用RequestProcessor类 里面的processPreprocess方法（好象就是起转发request,response的作用）  </p>
		<p>通常我们也可以重也这个类 然后重写processPreprocess（） 方法具体如下</p>
		<p>自己重写的话 必须在&lt;/struts-config&gt; 里加<br /> &lt;controller processorClass="包名.继承RequestProcessor的类名"&gt;<br /> &lt;/controller&gt;</p>
		<p>作用是在把数据提交到action前 先可以对一些数据进行验证下，可以说 这个类可以当整体功能的 <br />而action是 对某个模块的<br />如返回false  将不在进行以下操作了。</p>
		<p> </p>
		<p>如果返回true;</p>
		<p>
				<br />就会在 &lt;action-mappings&gt;里找 与 ***.do  前面***对应的名称相同的 path值 </p>
		<p>&lt;form-bean&gt;里 type是formbean的绝对地址，name可以看成这个地址的简化， 当做一个映射。</p>
		<p>&lt;action-mappings&gt;里 type是 action的绝对地址  ，path是这个地址 的简化，可以看成在文件里的一个映射。<br /> </p>
		<p> {<br />  ·如果我们这时候想把 提交的表单和formbean关联起来  </p>
		<p>  就要把&lt;form-bean&gt;里name放在 &lt;action&gt;里， 在aciton里也叫 name  这时候 formbean 就和 action 产生了关系了    <br />  接着formbean的对象产生 提交的表单里的数据  如果property属性对应的值在forbean里属性有<br />  对应的就会 立刻调用里面的set方法<br />  最后 把的 4个action需要参数对象 传到action里</p>
		<p>  · 如果我们想通过参数 来执行不同的方法 可以这么做：<br />  在&lt;form-bean&gt;里的&lt;action &gt;加   parameter="参数名"  这时候跳转到的action我们可以让他 继承自<br />   org.apache.struts.actions.DispatchAction;   DispatchAction类</p>
		<p>  我们不用在写execute方法了 <br />  我们写的方法名字  和参数的名对应的值一样就可以了，后面方法的参数和execute方法的一致<br />  方法的用法也和execute一致，如此方法可以写多个<br />  这样的好处是 我们在继承自DispatchAction的action里不需要做更多的判断 只看是哪个页面过来的<br />  就调用与这个页面传递参数相同的方法。<br />  <br />  </p>
		<p> }</p>
		<p> {</p>
		<p>  如果我们不想和formbean关联起来 ，可以用如下方式：<br />  1跳转到 jsp页面<br />  &lt;action forward="/要去的地址" path="/就是填***.do的***" /&gt;<br />  解释：path和 表单和跳转的***关联，forward就是要去的地方 <br />  2跳转到 action<br />  &lt;action  path="/就是填***.do的***" type="包名.***Action"&gt; <br />  <br />  3跳转 <br />  &lt;action parameter="/AddBook.jsp" path="/addbook1" type="org.apache.struts.actions.ForwardAction" /&gt;<br />  分析：path 在是jsp页面 发过来的 ***.do里面的  AddBook.jsp可以看成参数 但是理解上是ForwardAction<br />  利用这个参数 决定 跳转到哪个页面<br />  <br />  这3个跳转 包括表单的提交  都是会先经过RequestProcessor（）的，手写继承RequestProcessor（）的也是一样的</p>
		<p> }</p>
<img src ="http://www.blogjava.net/wwwlike/aggbug/88624.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2006-12-18 20:19 <a href="http://www.blogjava.net/wwwlike/articles/88624.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>