<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[Java伴侣 - Struts]]></title>
<link>http://www.javamilk.org/</link>
<description><![CDATA[关于工作、学习与生活]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[blurxx@yahoo.cn(Blur)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>Java伴侣</title>
	<url>http://www.javamilk.org/images/logos.gif</url>
	<link>http://www.javamilk.org/</link>
	<description>Java伴侣</description>
</image>

			<item>
			<link>http://www.javamilk.org/article.asp?id=1275</link>
			<title><![CDATA[html:sel&#101;ct标签]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Sat,17 Oct 2009 14:40:38 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=1275</guid>
		<description><![CDATA[&lt;html:sel&#101;ct property=&#34;if_end&#34;&gt; <br/>&lt;option value=&#34;0&#34;&gt;否&lt;/option&gt; <br/>&lt;option value=&#34;1&#34;&gt;是&lt;/option&gt; <br/>&lt;/html:sel&#101;ct&gt; <br/>将option中value的值给if_end<br/><br/>动态用法一：<br/><br/>&lt;html:sel&#101;ct property=&#34;personnelId&#34;&gt; <br/>&lt;html:option value=&#34;&#34;&gt;请选择&lt;/html:option&gt; <br/>&lt;html:options collection=&#34;personList&#34; property=&#34;personId&#34; labelProperty=&#34;personName&#34;/&gt; <br/>&lt;/html:sel&#101;ct&gt;<br/><br/><br/><br/>代码解释：<br/><br/>&lt;html:sel&#101;ct property=&#34;personnelId&#34;&gt; ：<br/><br/>该部分代码最终返回的值存储在personnelId变量中；<br/><br/>&lt;html:option value=&#34;&#34;&gt;请选择&lt;/html:option&gt; <br/>默认选项，值为空，为了满足用户不想选择任何选项的需求；<br/><br/>&lt;html:options collection=&#34;personList&#34; property=&#34;personId&#34; labelProperty = &#34;personName&#34;/&gt; ：<br/>&lt;html:options&gt;标签会自动根据参数产生多个&lt;option&gt;。其中，collection属性指的是待迭代的集合变量，property设定的是该&lt;option&gt;的value，labelProperty设定的是页面看到的内容。<br/>注：personList必须是Collection类型的，而且封装的是一个包含personId，personName属性的对象。<br/><br/><br/><br/><br/><br/><br/><br/><br/>动态用法二：<br/><br/>有时候用标签的限制太多就用下面这个：<br/><br/>&lt;Sel&#101;ct name=&#34;deid&#34;&gt; <br/><br/>&lt;logic:present name=&#34;departarray1&#34;&gt;<br/>&lt;logic:iterate id=&#34;depart&#34; name=&#34;departarray1&#34;&gt; <br/>&lt;option value=&#34;&lt;bean:write name=&#34;depart&#34; property=&#34;deId&#34;/&gt;&#34;&gt; <br/>&lt;bean:write name=&#34;depart&#34; property=&#34;deName&#34;/&gt; <br/>&lt;/option&gt; <br/>&lt;/logic:iterate&gt; <br/><br/>&lt;/logic:present&gt;<br/>&lt;/Sel&#101;ct&gt; <br/><br/>代码解释：<br/><br/>&lt;logic:present name=&#34;departarray1&#34;&gt; ：<br/><br/>判断是否存在departarray1对象，如果存在的话，就执行嵌套标签之中的内容，如果不存在就跳过。<br/><br/>&lt;logic:iterate id=&#34;depart&#34; name=&#34;departarray1&#34;&gt; ：<br/><br/>从departarray1集合对象中取出一个对象，并存入对象变量depart中。注：此处的departarray1必须是一个集合类型变量。depart相当于一个局部变量，是用来存储每次取出来的对象的。<br/><br/>&lt;option value=&#34;&lt;bean:write name=&#34;depart&#34; property=&#34;deId&#34;/&gt;&#34;&gt; ：<br/><br/>每一个&lt;option&gt;元素选项的value都是&lt;bean:write name=&#34;depart&#34; property=&#34;deId&#34;/&gt;，含义是depart对象的deID属性值。<br/><br/>&lt;bean:write name=&#34;depart&#34; property=&#34;deName&#34;/&gt; ：<br/><br/>这是每一个&lt;option&gt;元素在浏览器上的显示，道标depart对象的deName属性值<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=1178</link>
			<title><![CDATA[Servlet action is not available解决方法]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Wed,01 Jul 2009 15:32:07 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=1178</guid>
		<description><![CDATA[type Status report<br/><br/>message Servlet action is not available<br/><br/>description The requested resource (Servlet action is not available) is not available.<br/><br/>问题原因：<br/><br/>1.、web.xml文件中未配置ActionServlet。<br/><br/>2、struts-config.xml文件未配置你要访问的Action。<br/><br/>3、你的jsp文件form标记中action属性的路径名称错误。<br/><br/>4、非以上三种情况。<br/><br/>针对以上4种情况相应的解决方案如下：<br/><br/>1、在web.xml文件中加上ActionServlet的配置信息<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;action<br/>&nbsp;&nbsp;&nbsp;&nbsp;o&#114;g.apache.struts.action.ActionServlet<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;config<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/WEB-INF/struts-config.xml<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;detail<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;2<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>2、在struts-config.xml文件检查你要访问的Action配置文件。<br/><br/>3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。<br/><br/>4、非以上情况的解决办法就是检查web容器的log日志，如果时tomcat则检查下logs目录下的localhost_log文件，看里边是否记录有错误信息，然后根据错误信息提示将其纠正。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=1138</link>
			<title><![CDATA[关于radio选中及其struts form取值问题]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Wed,20 May 2009 10:27:52 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=1138</guid>
		<description><![CDATA[使用html:radio做选中常用两种方法，一种是order中属性给其默认值，二种在js页面使用js赋值<br/><br/>还有一种更加简单的，使用传统html表单的type=radio，修改name成相应属性，一样可以在action中拿到值，如下：<br/>姓名：&lt;html:text property=&#34;order.uname&#34;&gt;&lt;/html:text&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>性别：男&lt;input type=&#34;radio&#34; name=&#34;order.sex&#34; value=&#34;男&#34; checked=&#34;checked&#34;&gt;&lt;/input&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 女&lt;input type=&#34;radio&#34; name=&#34;order.sex&#34; value=&#34;女&#34;&gt;&lt;/input&gt;]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=1137</link>
			<title><![CDATA[No input attribute for mapping path]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Wed,20 May 2009 10:22:17 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=1137</guid>
		<description><![CDATA[错误： 表单数据验证失败时发生错误，“No input attribute for mapping path” <br/>原因：action中表单验证 validate=&#34;true&#34; ，如果validate()返回非空的ActionErrors，将会被转到input属性指定的URI，而action中未指定input时会报此错 <br/>解决方法：添加 input=&#34;url&#34; 或者 validate=&#34;false&#34;<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=1098</link>
			<title><![CDATA[struts中如何避免重复刷新(搜集)]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Mon,30 Mar 2009 16:58:23 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=1098</guid>
		<description><![CDATA[1·使用redirect = &#34;true&#34;<br/>&lt;action <br/>path=&#34;/testingOption&#34;&nbsp;&nbsp; <br/>name=&#34;optionForm&#34; <br/>parameter=&#34;method&#34; <br/>scope=&#34;request&#34; <br/>type=&#34;com.appeon.manager.action.TestingOptionAction&#34; <br/>validate=&#34;false&#34;&gt;<br/>&lt;forward name=&#34;editTesting&#34;&nbsp;&nbsp;&nbsp;&nbsp; path=&#34;/pages/infomanager/superTesting/wap/content/editTesting.jsp&#34; redirect = &#34;true&#34;/&gt;<br/>&lt;/action&gt;<br/>或者<br/>在action中return new ActionForward(String path,Boolean redirect) redirect设置为true<br/>缺点：如果jsp中使用了相对路径，而又没有设置&lt;base href = &#34;xxxx&#34;/&gt;，重定向之后可能一些相对路径会出问题。还有在设置&lt;base href = &#34;xxx&#34;/&gt;的时候，如果你的地址栏中使用的是ip地址，而base的href中使用的服务器名，会导致主机名不一致而导致session中的数据被清掉了。<br/>2·使用令牌isTokenValid<br/>Return true if there is a transaction token stored in the user&#39;s current session, and the value submitted as a request parameter with this action matches it.resetToken<br/>Reset the saved transaction token in the user&#39;s session.saveToken<br/>Save a new transaction token in the user&#39;s current session, creating a new session if necessary.为了防止用户重复提交，在数据读入.do未中加入saveToken(request)，<br/>在第二个.do的开始判断isTokenValid(request)如果有效继续否则丢出错误信息，<br/>最后resetToken(requet)注销tokenstruts自带的例子：<br/>Struts 里面有一个检查重复提交的机制：<br/>具体可以参看 Struts-example 里面的相关程序：<br/>in EditRegistrationAction:<br/>// Set a transactional control token to prevent double posting<br/>saveToken(request);in SaveRegistrationAction 里面：<br/>if (!isTokenValid(request)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 处理错误<br/>}<br/>resetToken(request);<br/>《j2ee核心模式》这本书上有详细介绍。<br/>基本原理<br/>第一次提交，生成同步令牌 写入到session，同时把同步令牌写入到返回页中；<br/>再次提交，比较同步令牌，如果相同，重复上面动作， 不同则重复提交了。<br/>if (!isTokenValid(request)) {<br/>&nbsp;&nbsp; errors.add(ActionErrors.GLOBAL_ERROR,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new ActionError(&#34;error.transaction.token&#34;_));<br/>}<br/>resetToken(request);3·客户端将提交按钮设置为disabled4·引入同步机制（SynId）。<br/>指导思想就是，为每一个页面编号，并在客户端和服务器端各产生一个副本，每次通过比较两端的编号是否一致，达到同步的目的。首先，由服务器产生这个编号，发送到客户端。这样这个编号在服务器和客户端各有一个副本。当客户提交页面时，服务器首先比较两个编号是否一致。如果一致，则处理提交，并产生一个新的编号，返回给客户端。此时如果客户回退并再次提交，客户端是旧编号，服务器端是新编号，显然不一致，因此服务器将判定这是一次重复提交，不予受理。<br/>对于同步环的产生、保存、比较，最好生成一个新“同步助手”类SynHelper，完成相应的操作。调用它的Jsp文件只需以JavaBean的形式引用即可。下面描述作为类SynHelper所需的基本方法：<br/><br/>private String generateSynId(){<br/>return Long.toString(System.currentTimeMillis());<br/>}<br/>protected void saveSynId(HttpServletRequest request){<br/>HttpSession session = request.getSession();<br/>session.setAttribute(SYN_ID,generateSynId());<br/>}<br/>protected boolean compareSynId(HttpServletRequest request){<br/>try{<br/>&nbsp;&nbsp; HttpSession session = request.getSession();<br/>&nbsp;&nbsp; String serverSynId = session.getAttribute(SYN_ID);<br/>&nbsp;&nbsp; String clientSynId = request.getParameter(“CLIENT_SYN_ID”);<br/>&nbsp;&nbsp; Return (serverSynId.equals(clientSynId));<br/>}catch(Exception e){<br/>&nbsp;&nbsp; return false;<br/>}<br/>}对于客户端jsp在收到服务器的同步环后，必须将其保存在hidden中。具体实现如下：<br/><br/>&lt;input type=&#34;hidden&#34; name=&#34;CLIENT_SYN_ID&#34; value=&lt;%=session.getAttribute(&#34;SYN_ID&#34;)%&gt;&gt;<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=1000</link>
			<title><![CDATA[错误 ：javax.servlet.ServletException: DispatchMapping[0] does not define a handler property ]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Fri,09 Jan 2009 15:38:32 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=1000</guid>
		<description><![CDATA[错误 ：javax.servlet.ServletException: DispatchMapping[0] does not define a handler property <br/>原因： action参数配置不全 <br/>解决方法：在 config文件中 添加 parameter=&#34;method&#34;等 <br/><br/>错误： 表单数据验证失败时发生错误，“No input attribute for mapping path” <br/>原因：action中表单验证 validate=&#34;true&#34; ，如果validate()返回非空的ActionErrors，将会被转到input属性指定的URI，而action中未指定input时会报此错 <br/>解决方法：添加 input=&#34;url&#34; 或者 validate=&#34;false&#34; <br/><br/>错误：jsp页面中，一个form有隐藏的method属性，&lt;input type=&#34;hidden&#34; name=&#34;method&#34; value=&#34;&lt;bean:message key=&#34;button.del&#101;teall&#34;/&gt;&#34;&gt; ，当其他的button使用 method时会默认为使用该属性，则达不到程序员预期的操作 <br/>解决方法：实用javascript写一个function,改变该method值 <br/>function{ <br/>document.forms[0].elements.value=&#34;你要的操作名&#34;;<br/><br/>} <br/><br/>错误：Action里无法解析 导入的包，Form里的方法，但是代码没错 <br/>原因：不明，我是改变了validation.xml后重新发布而出了错的 <br/>解决方法：将工程关了，再打开，myeclipse会将工程重新构建，这样问题就解决了 <br/>ps：重启Tomcat是没有用滴……<br/><br/>错误：Struts:HTTP Status 404 - Servlet action is not available<br/><br/>&nbsp;&nbsp; 原因 1.、web.xml文件中未配置ActionServlet。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 2、struts-config.xml文件未配置你要访问的Action。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;3、你的jsp文件form标记中action属性的路径名称错误。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;4、非以上三种情况。<br/><br/>针对以上4种情况相应的解决方案如下：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 1、在web.xml文件中加上ActionServlet的配置信息&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; &lt;servlet&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;action&lt;/servlet-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;config&lt;/param-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;/WEB-INF/struts-config.xml&lt;/param-value&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;0&lt;/param-value&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;detail&lt;/param-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;0&lt;/param-value&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/servlet&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 2、在struts-config.xml文件检查你要访问的Action配置文件。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 4、非以上情况的解决办法就是检查web容器的log日志，如果时tomcat则检查下logs目录下的localhost_log文件，看里边是否记录有错误信息，然后根据错误信息提示将其纠正。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=941</link>
			<title><![CDATA[javax.servlet.ServletException: DispatchMapping[XXX] does not define a handler property ]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Tue,02 Dec 2008 10:10:21 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=941</guid>
		<description><![CDATA[错误 ：javax.servlet.ServletException: DispatchMapping[0] does not define a handler property <br/>原因： action参数配置不全 <br/>解决方法：在 config文件中 添加 parameter=&#34;method&#34;等 <br/><br/>错误： 表单数据验证失败时发生错误，“No input attribute for mapping path” <br/>原因：action中表单验证 validate=&#34;true&#34; ，如果validate()返回非空的ActionErrors，将会被转到input属性指定的URI，而action中未指定input时会报此错 <br/>解决方法：添加 input=&#34;url&#34; 或者 validate=&#34;false&#34; <br/><br/>错误：jsp页面中，一个form有隐藏的method属性，&lt;input type=&#34;hidden&#34; name=&#34;method&#34; value=&#34;&lt;bean:message key=&#34;button.del&#101;teall&#34;/&gt;&#34;&gt; ，当其他的button使用 method时会默认为使用该属性，则达不到程序员预期的操作 <br/>解决方法：实用javascript写一个function,改变该method值 <br/>function{ <br/>document.forms[0].elements.value=&#34;你要的操作名&#34;; <br/><br/>} <br/><br/>错误：Action里无法解析 导入的包，Form里的方法，但是代码没错 <br/>原因：不明，我是改变了validation.xml后重新发布而出了错的 <br/>解决方法：将工程关了，再打开，myeclipse会将工程重新构建，这样问题就解决了 <br/>ps：重启Tomcat是没有用滴……<br/><br/>错误：Struts:HTTP Status 404 - Servlet action is not available<br/><br/>&nbsp;&nbsp; 原因 1.、web.xml文件中未配置ActionServlet。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 2、struts-config.xml文件未配置你要访问的Action。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;3、你的jsp文件form标记中action属性的路径名称错误。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;4、非以上三种情况。<br/><br/>针对以上4种情况相应的解决方案如下：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 1、在web.xml文件中加上ActionServlet的配置信息&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; &lt;servlet&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;action&lt;/servlet-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;config&lt;/param-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;/WEB-INF/struts-config.xml&lt;/param-value&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;0&lt;/param-value&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;detail&lt;/param-name&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;0&lt;/param-value&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/servlet&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 2、在struts-config.xml文件检查你要访问的Action配置文件。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 4、非以上情况的解决办法就是检查web容器的log日志，如果时tomcat则检查下logs目录下的localhost_log文件，看里边是否记录有错误信息，然后根据错误信息提示将其纠正。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=876</link>
			<title><![CDATA[Cannot cr&#101;ate iterator for this collection]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Wed,10 Sep 2008 15:38:33 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=876</guid>
		<description><![CDATA[at o&#114;g.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:265)<br/>jsp文件如下：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code55121);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.javamilk.org/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code55121>&lt;logic:notEmpty name=&#34;graduateList&#34; &gt;<br/>&lt;logic:iterate id=&#34;graduate&#34; name=&#34;graduateList&#34; &gt;<br/>&lt;/ogic:notEmpty &gt;<br/>&lt;/ogic:iterat&gt;</div></div><br/>graduateList是一个类，而logic:iterator要求必须是ArrayList,HashSet....这样的集合类,而graduateList中一个属性是ArrayList或HashSet的<br/>应改为:<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code71547);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.javamilk.org/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code71547>&lt;logic:notEmpty name=&#34;graduateList&#34; property=&#34;items&#34;&gt;<br/>&lt;logic:iterate id=&#34;graduate&#34; name=&#34;graduateList&#34; property=&#34;items&#34; &gt;<br/>&lt;/ogic:notEmpty &gt;<br/>&lt;/ogic:iterat&gt;</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=833</link>
			<title><![CDATA[Unable to find setter method for attribute:xxx]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Sat,16 Aug 2008 09:54:52 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=833</guid>
		<description><![CDATA[1. 检查 tld 配置文件有否写对 scope 属性<br/><br/>2. <strong>重点：检查 tag 类该属性的 getter &amp; setter </strong>，看看是否有如下方法：<br/><br/>public void setScope(String scope);<br/><br/>如果有 getScope() 方法，其返回值只能是 String 而不是其他类型。譬如以下的 getter 是错的：<br/><br/>public StorageScope getScope();<br/><br/>请把这个方法重命名。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.javamilk.org/article.asp?id=812</link>
			<title><![CDATA[ERROR - Error creating form bean of class com.blur]]></title>
			<author>blurxx@yahoo.cn(Java伴侣)</author>
			<category><![CDATA[Struts]]></category>
			<pubDate>Thu,31 Jul 2008 16:45:32 +0800</pubDate>
			<guid>http://www.javamilk.org/default.asp?id=812</guid>
		<description><![CDATA[javax.servlet.jsp.JspException: Exception creating bean of class com.blur.myStruts.form.productForm: {1}<br/><br/>struts-config.xml配置文件中的&lt;form-bean&gt;没有定义正确，<br/><br/>本次我是写成了这样<br/><br/>&nbsp;&nbsp; &lt;form-bean name=&#34;productForm&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;type=&#34;com.blur.myStruts.form.productForm&#34; /&gt;<br/><br/>正确的是<br/><br/>&nbsp;&nbsp; &lt;form-bean name=&#34;productForm&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;type=&#34;com.blur.myStruts.form.ProductForm&#34; /&gt;]]></description>
		</item>
		
</channel>
</rss>
