﻿<?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-大道自然-随笔分类-JavaServer Faces</title><link>http://www.blogjava.net/iamlibo/category/33096.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 18 Aug 2009 02:00:47 GMT</lastBuildDate><pubDate>Tue, 18 Aug 2009 02:00:47 GMT</pubDate><ttl>60</ttl><item><title>icefaces 1.8.1 no message available</title><link>http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 15 Aug 2009 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/291273.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/291273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/291273.html</trackback:ping><description><![CDATA[在使用icefaces 1.8.1 开发时经常会出现 <span class="postbody">java.lang.RuntimeException: no message available
</span> 这个异常。<br />
<br />
查了好久没有发现是什么原因。<br />
<br />
在将ice下载包中的push-server 部署上之后就没有这个异常了。估计原因是在web.xml 中配置了一个Tomcat Push Servlet 引起的。<br />
web.xml中的部分代码<br />
&nbsp;&nbsp;&nbsp; &lt;servlet&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;Tomcat Push Servlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; com.icesoft.faces.webapp.http.servlet.TomcatPushServlet<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/servlet&gt;<br />
<br />
<br />
将这个servlet去掉或者把push-server.war部署上都可以解决。看具体需要了。<br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/291273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2009-08-15 16:48 <a href="http://www.blogjava.net/iamlibo/archive/2009/08/15/291273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Facelets组件</title><link>http://www.blogjava.net/iamlibo/archive/2008/07/18/215816.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Fri, 18 Jul 2008 07:22:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2008/07/18/215816.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/215816.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2008/07/18/215816.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/215816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/215816.html</trackback:ping><description><![CDATA[
<p>facelets 可以自定义组件，今天看了一下,果然好用。</p>
<p>以前使用facelets只是定义一个界面的模板，并不没有深入它的自定义组件方面的内容，其实它的自定义组件也就是定义一个tag，然后在xhtml中引入这个tag，但这要比普通的JSP方式的tag方便多了。</p>
<p>要想引用自定义的tag要在web.xml中加入下面代码(<span style="COLOR: #ff0000">前提是一定配置好其他的facelets内容</span>)</p>
<p>&lt;context-param&gt;<br/>&lt;param-name&gt;facelets.LIBRARIES&lt;/param-name&gt;<br/>&lt;param-value&gt;<br/>/WEB-INF/tld/xiangyun.taglib.xml<br/>&lt;/param-value&gt;<br/>&lt;/context-param&gt;<br/><br/>xiangyun.taglib.xml文件的内容如下：</p>
<p>&lt;?xml version="1.0"?&gt;<br/>&lt;!DOCTYPE facelet-taglib PUBLIC<br/>"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"<br/>"<a href="https://facelets.dev.java.net/source/browse/*checkout*/facelets/src/etc/facelet-taglib_1_0.dtd">https://facelets.dev.java.net/source/browse/*checkout*/facelets/src/etc/facelet-taglib_1_0.dtd</a>"&gt;</p>
<p>&lt;facelet-taglib&gt;<br/>&lt;namespace&gt;http://xiangyun.cn/components&lt;/namespace&gt;<br/>&lt;tag&gt;<br/>&lt;tag-name&gt;echo&lt;/tag-name&gt;<br/>&lt;source&gt;component.jspx&lt;/source&gt;<br/>&lt;/tag&gt;<br/>&lt;/facelet-taglib&gt;<br/></p>
<p>在这里引用了一个component.jspx文件，这个文件就是一个或一组想放在一块当做一个组件使用的内容，和其他的jspx文件的写法一样。内容如下：</p>
<p><br/>&lt;ui:composition xmlns:ui="<a href="http://java.sun.com/jsf/facelets">http://java.sun.com/jsf/facelets</a>"<br/>xmlns:ice="<a href="http://www.icesoft.com/icefaces/component">http://www.icesoft.com/icefaces/component</a>"<br/>xmlns:h="<a href="http://java.sun.com/jsf/html">http://java.sun.com/jsf/html</a>"<br/>xmlns:f="<a href="http://java.sun.com/jsf/core">http://java.sun.com/jsf/core</a>"&gt;<br/>&lt;ice:selectInputDate id="inputDate" popupDateFormat="MM/dd/yyyy"<br/>value="#{inputDate}" renderAsPopup="true"<br/>styleClass="iceSelInpDateInput" onkeydown="ctlent(event);"<br/>rendered="true"&gt;<br/>&lt;/ice:selectInputDate&gt;<br/>&lt;h:outputText value="#{inputDate}"<br/>rendered="true" styleClass="printText"&gt;<br/>&lt;f:convertDateTime dateStyle="long" type="date" timeZone="GMT+8"<br/>locale="cn" /&gt;<br/>&lt;/h:outputText&gt;<br/>&lt;/ui:composition&gt;</p>
<p>只需要注意&lt;ui:composition&gt;标签和引入的命名空间就行，标签里面的内容就看你要完成的功能了。在这里我使用了ICEfaces的日期组件，可以替换成JSF支技的任何东西。</p>
<p>接下来就是要使用了。</p>
<p>&lt;html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"<br/>xmlns:ui="<a href="http://java.sun.com/jsf/facelets">http://java.sun.com/jsf/facelets</a>"<br/>xmlns:ald="<a href="http://xiangyun.cn/components">http://xiangyun.cn/components</a>"&gt;<br/>&lt;ui:composition template="/pages/layout/layout.jspx"&gt;<br/>&lt;ui:define name="content"&gt;<br/>&lt;h:form id="testForm"&gt;<br/>&lt;ald:echo inputDate="#{testBean.date}"/&gt;<br/>&lt;/h:form&gt;<br/>&lt;/ui:define&gt;<br/>&lt;/ui:composition&gt;<br/>&lt;/html&gt;<br/></p>
<p>这里需要引入命名空间，定义前缀为ald，</p>
<p>&lt;ald:echo&gt;这个标签名同xiangyun.taglib.xml中声明的要一致，inputDate是在定义组件component.jspx中声明的#{inputDate}，它可以接收EL表达式。</p>
<p>这样我们就可以把大的复杂的页面，分成可以重用的组件了。</p>
<p>有问题可以和我联系：<a href="mailto:wfn_libo@163.com">wfn_libo@163.com</a></p>
<p>也可以参考<a href="https://facelets.dev.java.net/nonav/docs/dev/docbook.html#gettingstarted-bean">https://facelets.dev.java.net/nonav/docs/dev/docbook.html#gettingstarted-bean</a></p>
<p class="zoundry_bw_tags">
  <!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com -->
  <span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/facelets" class="ztag" rel="tag">facelets</a>, <a href="http://technorati.com/tag/jsf" class="ztag" rel="tag">jsf</a></span> 
</p><img src ="http://www.blogjava.net/iamlibo/aggbug/215816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2008-07-18 15:22 <a href="http://www.blogjava.net/iamlibo/archive/2008/07/18/215816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF 动态创建组件</title><link>http://www.blogjava.net/iamlibo/archive/2008/07/01/212007.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Tue, 01 Jul 2008 13:39:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2008/07/01/212007.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/212007.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2008/07/01/212007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/212007.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/212007.html</trackback:ping><description><![CDATA[
<p>JSF 的组件和组件树的概念非常好,可以完全通过JAVA代码实现的组件的生成与设置方法等操作.尤其是JSF1.2提供了更多的组件的Binding方法.下面就实际做一个例子.</p>
<p>首先在managedBean中创建组件</p>
<p>1、创建按钮</p>
<p>private HtmlCommandButton button = new HtmlCommandButton();</p>
<p>public HtmlCommandButton getButton() {<br/>button.setValue("button"); //设置按钮上显示的值<br/>FacesContext context = FacesContext.getCurrentInstance();<br/>ELContext elContext = context.getELContext();<br/>ExpressionFactory ef = context.getApplication().getExpressionFactory();<br/>Class[] c = new Class[0];<br/>// c[0] = ActionEvent.class; //此处想调用一个带参数的方法,没有成功<br/>MethodExpression me = ef.createMethodExpression(elContext,<br/>"#{testBean.testEl}", Void.TYPE, c);<br/>button.setActionExpression(me); //为钮加入一个响应的方法,这种方法是JSF1.2方式的</p>
<p>return button;<br/>}</p>
<p>//在运行时被调用的方式,同前面的方法绑定中的EL表达是一致的.</p>
<p>public void testEl() {<br/>System.out.println("testEl method is run no param");<br/>}</p>
<p>在JSP页面中加入按钮.(testBean是在FacesConfig.xml中声明的上的bean)</p>
<p>&lt;h:commandButton binding="#{testBean.button }"/&gt;</p>
<p>2、创建表格<br/>private HtmlPanelGrid grid = new HtmlPanelGrid();<br/></p>
<p>public HtmlPanelGrid getGrid() {<br/>List list = grid.getChildren();//取得表格的列表<br/>list.add(getHtmlInputText());//向表格列表加入组件<br/>System.out.println("grid column " + grid.getColumns());<br/>return grid;<br/>}</p>
<p>public HtmlInputText getHtmlInputText() {<br/>htmlInputText.setValue("abcc");//这里直接设置值了，可以通过expressionFactory.createValueExpression(elContext, "#{testBean.userid}", String.class);来设置值表达式</p>
<p>htmlInputText.setAlt("alt htmlInputText ");<br/>htmlInputText.setConverter(new TestConve());//为输入框设置转换器<br/>return htmlInputText;<br/>}<br/></p>
<p>在JSP中加入下面代码:</p>
<p>&lt;h:panelGrid binding="#{testBean.grid }"/&gt;</p>
<p>就可以在表格内显示一个输入框了。</p>
<p><br/></p>
<p class="zoundry_bw_tags">
  <!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com -->
  <span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/jsf" class="ztag" rel="tag">jsf</a>, <a href="http://technorati.com/tag/%E5%8A%A8%E6%80%81%E7%BB%84%E4%BB%B6" class="ztag" rel="tag">动态组件</a></span> 
</p><img src ="http://www.blogjava.net/iamlibo/aggbug/212007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2008-07-01 21:39 <a href="http://www.blogjava.net/iamlibo/archive/2008/07/01/212007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FacesContext的一点经验</title><link>http://www.blogjava.net/iamlibo/archive/2008/04/26/196353.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 26 Apr 2008 13:11:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2008/04/26/196353.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/196353.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2008/04/26/196353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/196353.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/196353.html</trackback:ping><description><![CDATA[
<p>JSF 的FacesContext 在使用中遇到这样的一个问题，就是向FacesContext中加入的FacesMessages只有第一次能够显示出来，第二次没有办法显示。经多次试验，最终发现是我自己在基类中写的getFacesContext()方法有问题。</p>
<p>我是这样写的:</p>
<p>private FacesContext facesContext;<br/>public FacesContext getFacesContext() {<br/>if (this.facesContext==null)<br/>this.facesContext =FacesContext.getCurrentInstance();<br/>return FacesContext.getCurrentInstance();<br/>}<br/>然后在子类中直接调用这个方法就可以得到FacesContext了。</p>
<p>想法是好的，但是并没有仔细了解FacesContext的实现。</p>
<p>其实FacesContext.getCurrentInstance()就已经能够每调用的时候都在上下广得到同一个实例了。不必再象我这样写了。反而会画蛇添足。</p>
<p>改成这样就可以了。</p>
<p><br/>public FacesContext getFacesContext() {<br/>return FacesContext.getCurrentInstance();<br/>}<br/></p>
<br/><p class="zoundry_bw_tags">
  <!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com -->
  <span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/facesContext" class="ztag" rel="tag">facesContext</a></span> 
</p><img src ="http://www.blogjava.net/iamlibo/aggbug/196353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2008-04-26 21:11 <a href="http://www.blogjava.net/iamlibo/archive/2008/04/26/196353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>icefaces使用经验_ice:panelPopup</title><link>http://www.blogjava.net/iamlibo/archive/2007/09/05/142803.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Wed, 05 Sep 2007 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2007/09/05/142803.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/142803.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2007/09/05/142803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/142803.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/142803.html</trackback:ping><description><![CDATA[<p>ice:panelPopup是icefaces组件中模式(modal)对话框的组件.使用起来也非常简单.</p>
<p>先看代码:</p>
<p>&lt;ice:panelPopup id="affirmDel" rendered="true" visible="#{purchasePlanBean.confirmDel}" modal="true"<br />
style="z-index:1001; width: 350px; height: 200px; top:25%; left:25%;"&gt;<br />
&lt;f:facet name="header"&gt;<br />
&lt;ice:outputText styleClass="popupTitle" value="#{resource.confirm_title }" /&gt;<br />
&lt;/f:facet&gt;<br />
&lt;f:facet name="body"&gt;</p>
<p>这里是body的内容</p>
<p>&lt;/f:facet&gt;<br />
&lt;/ice:panelPopup&gt;<br />
</p>
<p>visible属性:是表示什么时候显示该对话框,一般是bean中的一个boolean变量的值，然后通过其他按钮的动作改变这个变量的值来显示对话框。</p>
<p>modal属性：表示对话框是否模式显示。</p>
<p>&lt;f:facet name="header"&gt;&lt;/f:facet&gt;中的内容是对话框的标题</p>
<p>&lt;f:facet name="body"&gt;&lt;/f:facet&gt;中的内容是对话框的显示内容。可以为JSF允许的任何内容。</p>
<p>如果对话的body的内容需要一个form，这时应该把一个form标签放到body内部。而不是放到&lt;ice:panelPopup&gt;这个标签的外部。如果放到外部在有多少个form 的情况下会出现对话框都被遮盖起来的情况，导致页面不能使用了。</p>
<p class="zoundry_bw_tags">
<!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com -->
<span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/icefaces" class="ztag" rel="tag">icefaces</a>, <a href="http://technorati.com/tag/jsf" class="ztag" rel="tag">jsf</a></span>
</p>
<img src ="http://www.blogjava.net/iamlibo/aggbug/142803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2007-09-05 09:50 <a href="http://www.blogjava.net/iamlibo/archive/2007/09/05/142803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF1.2组件 基于DIV+CSS的Tree 更新源码</title><link>http://www.blogjava.net/iamlibo/archive/2007/08/11/136064.html</link><dc:creator>Libo</dc:creator><author>Libo</author><pubDate>Sat, 11 Aug 2007 11:43:00 GMT</pubDate><guid>http://www.blogjava.net/iamlibo/archive/2007/08/11/136064.html</guid><wfw:comment>http://www.blogjava.net/iamlibo/comments/136064.html</wfw:comment><comments>http://www.blogjava.net/iamlibo/archive/2007/08/11/136064.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/iamlibo/comments/commentRss/136064.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/iamlibo/services/trackbacks/136064.html</trackback:ping><description><![CDATA[<p>这两天项目进行了到了菜单组件的开发.把能使用的JSF的Tree组件都翻了个遍,试了个遍.没有中意的.要不是太复杂就是太难用.(好象差不多一个意思^_^).最后决定自己开发一个Tree组件.</p>
<p>有如下功能:</p>
<p>1、数据要能够与bean联系起来,因为菜单是动态的从数据库里取出来或动态生成的；</p>
<p>2、要无限级次的（其实有点变态，那有那么层次的菜单）；</p>
<p>3、要是DIV+CSS的，不要table的（这么多大的、知名的JSF组件为什么都是table布局呢？难道他们和我一样不会用DIV？^_^)</p>
<p>...</p>
<p>在网上一找，有一个DIV+CSS的tree组件出现了。在 <a href="http://cnlei.iecn.net/">http://cnlei.iecn.net/</a>&nbsp; </p>
<p>下来源码一看很清晰。连我这不懂CSS的也看得明白了一大半。决定就对它进行改造。生成JSF的组件。</p>
<p>在开发的过程中有一些要记录的：</p>
<p>1、JSF1.2的组件开发和JSF1.1有的很大的不同。尤其是EL表达式。而且是extends的基类也不同。</p>
<p>JSF1.2中的TagLib要继承javax.faces.webapp.UIComponentELTag。</p>
<br />
<p>2、TagLib接受的属性只能是ValueExpression类型。如果需要用字符型。需要再进行处理。不象JSF1.1中有方法判断是表达式还是值。</p>
<p>接受表达的值，并给组件赋值：</p>
<p>private ValueExpression value;</p>
<p>...</p>
<p>&nbsp;&nbsp;if (value != null)<br />
&nbsp;&nbsp;&nbsp;component.setValueExpression("value",
value);<br />
如果要接受字符串的属性要这样得到字符串的值。</p>
<p>&nbsp;&nbsp;if (id != null)
{<br />
&nbsp;&nbsp;&nbsp;component.setId(id.getExpressionString());<br />
&nbsp;&nbsp;}<br />
</p>
<br />
<p>3、如果想把组件在Facelets中应用，要写Renderer。（至少我是这样，不写Renderer在Facelets中就不能应用。但在JSP中可以使用）还要写一个componets.tablib.xml。</p>
<p>在Renderer中得到表达式的值：</p>
<p>ValueExpression valueVe = component.getValueExpression("value");<br />
&nbsp;&nbsp;if
(valueVe != null) {<br />
&nbsp;&nbsp;&nbsp;Object _object =
valueVe.getValue(context.getELContext());</p>
<p>//...<br />
}</p>
<p>4、要在faces-config.xml中配置component 和render-kit.</p>
<br />
<p>总之写JSF的组件是很麻烦的事情。如果有其他的选择还是不要自己写。但是写好之后用起却是非常的方便的。</p>
<p>&lt;xy:tree value="#{menuBean.nodes}"
title="#{resource.menu_title}"/&gt;<br />
</p>
<p>一句话就可以生成一树。很爽吧！</p>
<p><br />
&nbsp;</p>
<img alt="" src="http://www.blogjava.net/images/blogjava_net/iamlibo/tree.jpg" height="181" width="177" /><br />
<br />
附源码（Eclipse 工程) <a title="下载源码" href="http://www.blogjava.net/Files/iamlibo/Tree.zip">下载源码</a><br />
<br />
源码中没有相关jar 包，加在一起太大了没办法上传。用到的jar包如下：<br />
commons-beanutils.jar<br />
commons-codec.jar<br />
commons-collections.jar<br />
commons-digester.jar<br />
commons-el.jar<br />
commons-fileupload.jar<br />
commons-lang.jar<br />
commons-logging.jar<br />
commons-validator.jar<br />
jakarta-oro.jar<br />
javaee.jar<br />
jsf-api.jar<br />
jsf-impl.jar<br />
jstl-1.2.jar<br />
jstl.jar<br />
log4j-1.2.8.jar<br />
如果有没办法找到可以给我发Email:wfn_libo # 163.com<br />
<img src ="http://www.blogjava.net/iamlibo/aggbug/136064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/iamlibo/" target="_blank">Libo</a> 2007-08-11 19:43 <a href="http://www.blogjava.net/iamlibo/archive/2007/08/11/136064.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>