﻿<?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-用手做事，用心做事，用生命做事-随笔分类-struts</title><link>http://www.blogjava.net/wyxdeniro/category/27588.html</link><description>舍我其谁</description><language>zh-cn</language><lastBuildDate>Mon, 26 Nov 2007 14:48:11 GMT</lastBuildDate><pubDate>Mon, 26 Nov 2007 14:48:11 GMT</pubDate><ttl>60</ttl><item><title>常用struts标签使用举例--bean篇(转载) </title><link>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163279.html</link><dc:creator>王永庆</dc:creator><author>王永庆</author><pubDate>Mon, 26 Nov 2007 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163279.html</guid><wfw:comment>http://www.blogjava.net/wyxdeniro/comments/163279.html</wfw:comment><comments>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163279.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wyxdeniro/comments/commentRss/163279.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wyxdeniro/services/trackbacks/163279.html</trackback:ping><description><![CDATA[<p><span style="color: #993300"><strong><span style="color: #993300">1.&nbsp; </span></strong></span><a name="d3e326"><span style="color: #993300"><span style="color: #993300"><strong>bean:write</strong></span> </span></a></p>
<p><span style="color: #993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签将指定的bean的属性值写到当前的JspWriter中，并且可以对输出进行格式化。</span></p>
<p><span style="color: #993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如在struts的action着那个通过request.setAttribute("name", "amigo");将属性值name中放入amigo，可在jsp页面中通过bean:write将name属性输出。<br />
<span style="color: #800080">&lt;bean:write name="name"/&gt;。</span></span></p>
<p><span style="color: #993300">&nbsp;&nbsp;&nbsp;&nbsp; 对于日期型的属性，可在bean:write标签中指定format来输出日期格式，<br />
<span style="color: #800080">eg：&lt;bean:write name="date" format="MM/dd/yyyy"/&gt;。</span><br />
&nbsp;&nbsp;&nbsp;&nbsp; 如果要输出某对象的某属性，例如属性名为person的对象的name属性，可通过如下方式<span style="color: #800080">：。&lt;bean:write name="person" property="name"/&gt;。</span></span></p>
<p><span style="color: #993300"><strong><span style="color: #993300">2.&nbsp;&nbsp; </span></strong></span><a name="d3e184"><span style="color: #993300"><strong><span style="color: #993300">bean:message</span></strong></span></a></p>
<p><span style="color: #993300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;该 标签用来从指定的locale中取回国际化的消息并输出，在这个过程中我们还可以传递5个以内的参数。message key可以通过key直接指定，也可以通过name和property间接的指定。</span></p>
<p><span style="color: #993300">&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #800080">eg1.&nbsp; &lt;bean:message key="welcome.title"/&gt;，</span>该句要求在资源文件中有welcome.title的键值对（资源文件在struts的配置文件中指定）。</span></p>
<p><span style="color: #993300">&nbsp;&nbsp;&nbsp;&nbsp; eg2.&nbsp; 传递参数信息的bean:message的用法，</span></p>
<p><span style="color: #993300">&nbsp;&nbsp;&nbsp; <span style="color: #800080">&lt;bean:message key="greeting" arg1="amigo" arg2="good morning"/&gt;</span></span></p>
<p><span style="color: #993300">&nbsp;&nbsp;在资源文件中greeting的配置举例如下： </span></p>
<p><span style="color: #993300">&nbsp; greeting = hello, {0}, {1}. </span></p>
<p><strong><span style="color: #993300"><span style="color: #993300">&nbsp;3.&nbsp; &nbsp; </span></span></strong><a name="d3e253"><span style="color: #993300"><strong><span style="color: #993300">bean:parameter</span></strong> </span></a></p>
<p><span style="color: #993300">&nbsp;&nbsp;该标签取回请求中的参数值。如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean，否则根据刚取回的值创建一个String[]类型的数组。然后用id属性值将String或String[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值)，并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。 </span></p>
<p><span style="color: #993300">&nbsp;&nbsp;eg1. 当请求如下的jsp页面时:http://localhost:8080/test.jsp?orgId=1 </span></p>
<p><span style="color: #993300">&nbsp; 在test.jsp页中可通过如下方式获得orgId参数， </span></p>
<p><span style="color: #993300">&nbsp;</span><span style="color: #993300"><span style="color: #800080"> &lt;bean:parameter id="orgId" name="orgId"/&gt;<br />
&nbsp; &lt;bean:write name="orgId"/&gt;</span> </span></p>
<p><span style="color: #993300"><strong><span style="color: #993300">4. </span></strong></span><a name="d3e290"><span style="color: #993300"><span style="color: #993300"><strong>bean:size</strong></span> </span></a></p>
<p><span style="color: #993300">&nbsp;&nbsp;该标签创建一个java.lang.Integer类型的bean，该值为该标签指定的Collection或Map，List中所含元素的个数。它可和logic:iterate标签配合使用。 </span></p>
<p><span style="color: #993300">&nbsp;&nbsp;如下语句输出userList属性中元素的个数： </span></p>
<p><span style="color: #993300">&nbsp;</span><span style="color: #993300"><span style="color: #800080"> eg. &lt;bean:size id="size" name="userList"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="size"/&gt;</span>&nbsp;</span></p>
<img src ="http://www.blogjava.net/wyxdeniro/aggbug/163279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wyxdeniro/" target="_blank">王永庆</a> 2007-11-26 17:39 <a href="http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用struts标签使用举例--logic篇 (转载) </title><link>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163280.html</link><dc:creator>王永庆</dc:creator><author>王永庆</author><pubDate>Mon, 26 Nov 2007 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163280.html</guid><wfw:comment>http://www.blogjava.net/wyxdeniro/comments/163280.html</wfw:comment><comments>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wyxdeniro/comments/commentRss/163280.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wyxdeniro/services/trackbacks/163280.html</trackback:ping><description><![CDATA[<div id="article" style="color: #800080">
<p><font face="Verdana"><span style="color: #993300">1.&nbsp; logic:empty <br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签是用来判断是否为空的。如果为空，该标签体中嵌入的内容就会被处理。该标签用于以下情况：</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1）当Java对象为null时；</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2）当String对象为""时； </font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3）当java.util.Collection对象中的isEmpty()返回true时；</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4）当java.util.Map对象中的isEmpty()返回true时。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">eg. <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:empty&nbsp;&nbsp; name="userList"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:empty&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该句等同于：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; (userList.isEmpty())&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;<br />
<br />
</span>&nbsp;&nbsp; <span style="color: #993300">2.&nbsp; logic:notEmpty<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签的应用正好和logic:empty标签相反，略。<br />
<br />
&nbsp;&nbsp; <span style="color: #993300">3. logic:equal<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签为等于比较符。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">eg1. 比较用户的状态属性是否1，若为1，输出"启用";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal&nbsp;&nbsp; name="user"&nbsp;&nbsp; property="state"&nbsp;&nbsp; value="1"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 启用<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eg2. 如果上例中的value值是动态获得的，例如需要通过bean:write输出，因struts不支持标签嵌套，可采用EL来解决该问题。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal&nbsp;&nbsp; name="charge"&nbsp;&nbsp; property="num"&nbsp;&nbsp; value="${business.num}"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ......<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt;<br />
<br />
</span>&nbsp;&nbsp;&nbsp; <span style="color: #993300">4. logic:notEqual<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签意义与logic:equal相反，使用方法类似，略。<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="color: #993300">5. logic:forward</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签用于实现页面导向，查找配置文件的全局forward。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">eg. &lt;logic:forward name="index"/&gt;</span><br />
<br />
&nbsp;&nbsp;&nbsp; <span style="color: #993300">6. logic:greaterEqual<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为大于等于比较符。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">eg. 当某学生的成绩大于等于90时，输出&#8220;优秀&#8221;：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:greaterEqual name="student" property="score" value="90"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 优秀<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:greaterEqual&gt;&nbsp;<br />
<br />
</span>&nbsp;&nbsp;&nbsp; <span style="color: #993300">7. logic:greaterThan<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此为大于比较符，使用方法同logic:greaterEqual，略;<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="color: #993300">8. logic:lessEqual</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此为小于等于比较符，使用方法同logic:greaterEqual,略;<br />
&nbsp;&nbsp;&nbsp; <span style="color: #993300">9. logic:lessThan</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此为小于比较符，使用方法同logic:greaterEqual,略;<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="color: #993300">10. logic:match</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此标签比较对象是否相等；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">eg1. 检查在request范围内的name属性是否包含"amigo"串： <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:match name="name" scope="request" value="amigo"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="name"/&gt;中有一个&#8220;amigo&#8221;串。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:match&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eg2. 检查在request范围内的name属性是否已&#8220;amigo&#8221;作为起始字符串：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:match name="name" scope="request" value="amigo" location="start"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="name"/&gt;以&#8220;amigo&#8221;作为起始字符串。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:match&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eg3. <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:match header="user-agent" value="Windows"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你运行的是Windows系统<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:match&gt;<br />
</span>&nbsp;&nbsp;&nbsp;</font><span style="color: #993300"> 11.&nbsp; logic:notMatch</span></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此标签用于比较对象是否不相同，与logic:match意义相反，使用方法类似，略。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #993300">12. logic:messagePresent<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签用于判断ActionMessages/ActionErrors对象是否存在；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">eg. 如果存在error信息，将其全部输出：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:messagePresent property="error"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:messages property="error" id="errMsg" &gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="errMsg"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/html:messages&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:messagePresent &gt;<br />
</span><br />
&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #993300">13. logic:messagesNotPresent</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该标签用于判断ActionMessages/ActionErrors对象是否不存在,使用方法与logic:messagePresent类似，略<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #993300">14. logic:present</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此标签用于判断request对象传递参数是否存在。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">eg1. user对象和它的name属性在request中都存在时，输出相应字符串：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:present name="user" property="name"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user对象和该对象的name属性都存在<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:present&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eg2. 若有一个名字为&#8220;user&#8221;的JavaBean，输出对应字符串：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:present name="user" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有一个名字为&#8220;user&#8221;的JavaBean。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:present&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eg3. <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:present header="user-agent"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; we got a user-agent header.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:present&gt;<br />
</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #993300">15. logic:notPresent<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此标签用于判断request对象传递参数是否不存在，意义与了logic:present相反，使用方法类似，略。<span style="color: #0000ff"><span style="font-size: 14pt"><br />
</span></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #993300"> 16. logic:iterator</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用于显示列表为collection的值（List ,ArrayList,HashMap等）。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="color: #0000ff">eg1. 逐一输出用户列表(userlList)中用户的姓名：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:iterate&nbsp; id="user" name="userList"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="user" property="name"/&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:iterate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eg2. 从用户列表中输出从1开始的两个用户的姓名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:iterate&nbsp; id="user" name="userList" indexId="index"&nbsp; offset="1" length="2"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="index"/&gt;.&lt;bean:write name="user" property="name"/&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:iterate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eg3. logic:iterator标签的嵌套举例<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:iterate id="user" indexId="index" name="userList"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="index"/&gt;. &lt;bean:write name="user" property="name"/&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:iterate id="address" name="user" property="addressList" length="3" offset="1"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:write name="address"/&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:iterate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:iterate&gt;</span></p>
</div>
<img src ="http://www.blogjava.net/wyxdeniro/aggbug/163280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wyxdeniro/" target="_blank">王永庆</a> 2007-11-26 17:39 <a href="http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用struts标签使用举例--html篇(转载)</title><link>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163278.html</link><dc:creator>王永庆</dc:creator><author>王永庆</author><pubDate>Mon, 26 Nov 2007 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163278.html</guid><wfw:comment>http://www.blogjava.net/wyxdeniro/comments/163278.html</wfw:comment><comments>http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163278.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wyxdeniro/comments/commentRss/163278.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wyxdeniro/services/trackbacks/163278.html</trackback:ping><description><![CDATA[<span style="color: #993300">1.&nbsp;html:base</span>
<p><span style="color: #993300">&nbsp;&nbsp;同html的base元素。</span></p>
<p><span style="color: #993300">&nbsp;2. </span><a name="d3e378"><span style="color: #993300">html:cancel</span></a></p>
<p style="color: #993300">&nbsp; 该标签生成一个取消按钮。当点击该按钮后action servlet会绕过相应的form bean的validate()方法，同时将控制权交给相应的action。在action中可使用Action.isCancelled(HttpServletRequest)方法判断是否被取消了。如果返回true表示这个action被取消了，否则表示这个action没有被取消。<br />
&nbsp;<br />
&nbsp;&nbsp; eg.&nbsp; &lt;html:cancel&gt;取消&lt;/html:cancel&gt;<br />
3.html:form<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #993300">&nbsp;1)&nbsp; 标签中必须包含一个action属性，它是这个标签中唯一必需的属性。如果不具备该属性则JSP页面会抛出一个异常。之后你必须给这个action属性指定一个有效值。一个有效值是指应用程序的Struts配置文件中元素里的任何一个子元素的访问路径。而且相应的元素中必须有一个name属性，它的值是form bean的名称<br />
</span><span style="color: #000000"><span style="color: #800080">&lt;html:form action=\"/login\" &gt;</span></span> </p>
<p>&nbsp;<span style="color: #993300">如果你有上述一个标签 ，那么你的Struts配置文件的元素中必须有一个如下显示为粗体的元素： </span><br />
<span style="color: #800080">&lt;action-mappings&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;action path=\"/login\" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type=\"com.javapro.struts.LoginAction\"&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name=\"loginForm\"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope=\"request\"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; input=\"/login.jsp\"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name=\"success\" path=\"/mainMenu.jsp\"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/action&gt;</span><br />
<span style="color: #800080">&lt;/action-mappings&gt;&nbsp; // 这就是说一个form标签是和form bean相关联的<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #993300">&nbsp;&nbsp;2) 任何包含在&lt;form&gt;中用来接收用户输入的标签（&lt;text&gt;、&lt;password&gt;、&lt;hidden&gt;、&lt;textarea&gt;、&lt;radio&gt;、&lt;checkbox&gt;、&lt;select&gt;）必须在相关的form bean中有一个指定的属性值。比如，如果你有一个属性值被指定为&#8220;username&#8221;的&lt;text&gt;标签，那么相关的form bean中也必须有一个名为&#8220;username&#8221;的属性。输入&lt;text&gt;标签中的值会被用于生成form bean的userName属性。<br />
</span><br />
&nbsp;<span style="color: #993300">4.html:select标签</span></p>
<p>&nbsp;&nbsp;<span style="color: #800080"> 该标签生成一个select元素。multiple属性决定是否为多选。如果指定了multiple="true"则为多选，此时对应的属性应该是一个数组。否则，此时对应的属性应该是标量。</span></p>
<p><span style="color: #800080">&nbsp;&nbsp;&nbsp; 注意：为了正确的处理未作选择的情况，在ActionForm中的reset()方法中必须将标量属性设置为默认值而将数组的长度置为0。</span></p>
<p><span style="color: #800080">&nbsp;&nbsp;&nbsp; 另外的一个重要问题就是struts如何生成option元素了，这个任务struts交给了html:option、html:options和html:optionsCollection三个标签。</span></p>
<p>&nbsp;&nbsp;&nbsp; <span style="color: #993300">1）html:option</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #800080">该标签生成一个HTML的option元素。该标签必须嵌在html:select标签中。它的显示文本来自其标签体，也可以来自于资源文件。</span> eg. <span style="color: #800080"><strong>&lt;html:option value="red"&gt;red&lt;/html:option&gt;</strong></span>&nbsp;&nbsp;&nbsp;&nbsp; <strong style="color: #800080">&lt;html:option value="blue"&gt;blue&lt;/html:option&gt;</strong></p>
<p>&nbsp;&nbsp; <span style="color: #993300">2）html:options</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #800080">该标签生成多个HTML的option元素。该标签必须嵌在html:select标签中。</span></p>
<p><span style="color: #800080">&nbsp;&nbsp;&nbsp;&nbsp; 指定collection属性的方式举例如下</span>：</p>
<pre>  <span style="color: #800080"><strong>&lt;html:select name="selectForm" property="orgId" size="1"&gt;    <br />
&lt;html:options collection="orgCollection" property="orgId" labelProperty="orgName"/&gt;   <br />
&lt;/html:select&gt;</strong></span></pre>
<p>&nbsp;&nbsp;&nbsp; <span style="color: #800080">未指定collection属性方式的举例如下：</span></p>
<pre>  <span style="color: #800080"><strong>&lt;html:select name="selectForm" property="orgId" size="1"&gt;     <br />
&lt;html:options property="orgIds" labelProperty="orgNames"/&gt;   <br />
&lt;/html:select&gt;</strong></span></pre>
<p>&nbsp;&nbsp;&nbsp; <span style="color: #993300">3）html:optionsCollection标签</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #800080">该标签生成多个HTML的option元素。其功能和html:options标签的相同。</span></p>
<pre style="color: #993300">  <span style="color: #800080">&lt;html:select name="selectForm" property="orgIds" size="1"&gt;      <br />
&lt;html:optionsCollection name="selectForm" property="orgs" label="orgName" value="orgId"/&gt;   <br />
&lt;/html:select&gt;</span></pre>
<pre style="color: #993300"><br />
5. <a name="d3e378"><span style="color: #993300">html:img标签</span></a> <br />
&nbsp;&nbsp;&nbsp;<span style="color: #800080">最重要的属性page：图象文件的路径，前面必须带有一个斜线。<br />
&nbsp;&nbsp;&nbsp;其它属性：heignt、width、alt。<br />
&nbsp; &lt;html:img page=\"/logo.gif\" height=\"50\"&nbsp; width=\"200\" alt=\"Web Logo\"/&gt;<br />
</span>6.html:link标签<br />
&nbsp;&nbsp;&nbsp;<span style="color: #800080">&lt;html:link page=\"/index.html\"&gt;Click demo&lt;/html:link&gt;</span><br />
</pre>
<img src ="http://www.blogjava.net/wyxdeniro/aggbug/163278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wyxdeniro/" target="_blank">王永庆</a> 2007-11-26 17:38 <a href="http://www.blogjava.net/wyxdeniro/archive/2007/11/26/163278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>