??xml version="1.0" encoding="utf-8" standalone="yes"?>
在Eclipse里用WTP插gӞL不能正确的增加一个Server。当点击“WTP Server Actions”工具图标时QEclipse响应速度极慢Qƈ且,整个WTP相关的图标都会从工具栏上消失掉?br />
开始我以ؓq个问题是由于各个插件用的WTP版本不一致造成的。由于我主要是想使用Exadel Studio 3.5,所以,我按照Exadel|站上的ҎQ去掉了其它插g的WTPQ主要是JBossIDE和WTP本nQ,仍然不能解决该问题,于是我准备将错误信息发送给Exadel?br />
令我吃惊的是Q当我?debug参数启动EclipseӞ一切都正常Q我能通过WTP Server Actions图标创徏Web服务器,也能通过其它WTP图标启动、停止和部v应用。当我去?debug参数Ӟ问题又回来了Q看上去非常的不可思议。当我仔l观察用与不?debug参数时Eclipse的区别时Q终于发现当使用-debug参数ӞEclipse没有使用Windows主题Q难道会与这个相养I看上去风马牛不相及,不过我还是准备试一下。我?JAVA_HOME%\bin下的javaw.exe.manifest文g删掉Q重新启动,一切OK了!
不可思议Q于此我得出的结论是Q不能只看重外表Q?br />
]]>
在Exadel下创Z个Managed Bean的方法十分简单。首先,在包资源理器下面定位到/WebContent/WEB-INF/faces-config.xml文gQ双L开它。默认情况下是用源码方式打开Q可以通过H口下部的“Tree”标{以树状囑ŞҎ打开它,定位到“Managed Bean”,点击右键Q选择“New->Managed Bean...”,如下图:
q时Exadel会打开一个对话框要求你输入这个Managed Bean的存zL、类名称和名U等属性,注意Q?BR>1、请选中“Generate Source Code”选项QExadel会ؓ你生类的代码?BR>2、类名称应该是全名,卛_括包的名U?BR>
单击“Finish”按钮后Q可以在包资源管理器里找到这个Managed Bean的源码文件?BR>
Managed Bean 和普通的JavaBean没有M区别QTableTestcd有一个属性——dataQ它q回表Authors中的所有记录,源码如下Q注意用了前面配置的数据源Q:
/**//*
* TableTest.java
* javafever @ 2005-8-9
*/
package jtest;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import javax.sql.DataSource;
public class TableTest
{
private Connection con = null;
private Result data = null;
public void setData(Result data)
{
this.data = data;
}
public void connect() throws SQLException, NamingException
{
if (con != null) return;
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/jtest");
con = ds.getConnection();
}
public void disconnect() throws SQLException
{
if (con != null)
{
con.close();
con = null;
}
}
public Result getData() throws SQLException, NamingException
{
try
{
connect();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from authors");
return ResultSupport.toResult(rs);
}
finally
{
disconnect();
}
}
public TableTest()
{
}
}
再次打开faces-config.xml文gQ用“Tree”方式编辑,选中“Managed Bean -> table”,在右边的“Preperties”编辑区里增加一个属性,增加属性的对话框如下。注意,Value Kind选择“null-value”?BR>
{建立JSP面}
接下来创建页面来昄q个表格。(如果按照上一节创Z/WebContent/index.jsp文gQ请先删除它。)在资源管理器的?WebContent”节点上选择建立JSP文gQ对话框如下Q注意,Template选择“JSFBasePage”会生成一些默认的代码Q方便你书写JSPE序?BR>
创徏的代码如下:
如果你不是用的“Exadel Studio”透视图,现在请用它Qƈ打开“Exadel Palette”视图。“Exadel Studio”视囑֦下,它提供了一些JSFlg的图标。单击这些图标可以在Jsp~辑器里快速的生成JSF代码?BR>
比如Q点几ZdataTable”,生成的代码如下:
最l的代码Q?BR>
<%
@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%
@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title></title>
</head>
<body>
<f:view>
<h:dataTable value="#{table.data}" var="data">
<h:column>
<f:facet name="header">
<h:outputText value="First Name"/>
</f:facet>
<h:outputText value="#{data.au_fname}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Last Name"/>
</f:facet>
<h:outputText value="#{data.au_lname}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Phone"/>
</f:facet>
<h:outputText value="#{data.phone}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Address"/>
</f:facet>
<h:outputText value="#{data.address}"/>
</h:column>
</h:dataTable>
</f:view>
</body>
</html>
{q行}
最后,q行/ant/build.xml。启动TomcatQ访?A href="http://localhost:8888/jtest/index.jsf">http://localhost:8888/jtest/index.jsfQ结果如下:
Exadel提供一个Web BrowserQ通过下面的方式用?BR>
]]>
建立一个名为jtest的Exadel JSF ProjectQ模杉K用JSFBlank?BR>
{配置Tomcat数据源}
我用的是Tomcat5.5.10Q数据库是SQLServer2000_SP3Q好象都是比较新的版本,难怪有我喜新厌旧)?BR>我的Web应用E序名叫jtestQ所以我修改{TOMCAT_HOME}/conf/Catalina/localhost/jtest.xml文gQ在里面增加数据源配|。文件内容如下:
在包资源理器中扑ֈWebContent/WEB-INF/web.xmlQ打开Q安装Exadel后会自动使用Exadel的XML~辑器打开XML文档Q如果是web.xml和faces-config.xmlQ还会有相应的图形化工具。用图形化工具来管理很方便Q大大提高了开发效率。由于这个web.xml比较单,所以我直接~写源文Ӟ最l的文g内容如下Q?BR>
除了<resource-ref>标签里定义数据源是我自己手动增加的内容以外,其它都是Exadel自动产生的,真是很方ѝ?BR>在配|的q程中遇到点麻烦:我的OS是Windows2003QJDBC是微软官方的Q开始SQLServer2000没有打SP3Q怎么也配不成功,l果一打SP3p了,费了不光阴?BR>
{试数据源}
最后,写一个index.jsp文g来测试数据源有没有工作,文g内容如下Q?BR>
文件存攑֜/WebContent/目录下,然后q行/ant/build.xmlQ最后启动TomcatQ如果能看到l果Q表C配|一切OK?BR>
{安装}
安装׃说了Q从Exadel的网站上下蝲Q运行Exe或者Jar文g卛_?/P>
{配置Exadel}
在“首选项?>“Exadel?>“Running”的“Tomcat”选项卡中配置好Tomcat的\径。ExadelStudio2.5支持Tomcat、JBoss、JRun和J2EESDK。不q,ExadelStudioPro3.0支持几乎所有的应用服务器了?BR>在“首选项?>“Exadel?>“JSF?>“Project”选项卡中可以配置你用的JSF的版本、Servlet的版本以及你的JSF目模板。还有一个选项是在Tomcat的Server.xml文g中注册你的Web上下文。不q由于Tomcat5.0以后可以使用独立的上下文配置文gQ所以我一般不喜欢使用q个选项?/P>
{新徏一个JSF目}
在刚才的配置中,JSF目模板有两个选项Q一个的“JSFBlank”,另一个是“JSFKickStart”。JSFBlank徏立一个空白的JSF目QExadel会自动在你的目路径中生你需要的文档?BR>首先Q它会把需要的JSF库放到应用的/WEB-INF/lib目录下,在项目中的\径ؓ/WebContent/WEB-INF/lib?BR>W二Q它会自动设|好目的构\径,让Eclipse能轻村֜使用JSF库?BR>W三Q它会自动生几个重要的文档QWeb.xml、faces-config.xml和build.xml。其中web.xml和faces-config.xml攑֜/WebContent/WEB-INF/下面Q而build.xml攑֜/ant目录下面?BR>注意Q如果你需要对你的ManagedBeanq行的调试的话,误住将build.xml的compilerd中javac的debug属性设为“on”?BR>Exadelq会产生一个JavaSource目录Q所有ManagedBean的源码都应该存放在这里。还有build和deploy目录是ant用来执行~译和部|的。deploy里是最l的部v路径Q当Ӟ你要是不喜欢的话Q尽在build.xml里把它换成其它的?/P>
如果想一句代码都不写׃会一下JSF的概貌的话,可以Exadel的JSF目模板讄为“JSFKickStart”,q时Exadel会ؓ你生一个比I白JSF目E稍多一点功能的目模板Q它有一个欢q页面和一个ManagedBean。虽然没有多大用处,但可以很清晰地看到JSF目的书写方法?/P>
-debug
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=128m
-Dcom.sun.management.jmxremote
-debug在Eclipse启动时打开一个CommandH口QEclipse的调试信息会出现在这个窗口里?BR>-Xms128m?Xmx512m指示Eclipse使用的最堆I间?28MQ最大ؓ512M?BR>-XX:MaxPermSize=128m指示Eclipse使用操作pȝ128M的实际内存空间?BR>-Dcom.sun.management.jmxremote用于Java5.0的新Ҏ,Java5.0提供一个叫JConsole的实用工P该工具可以查看一个Java Applet或Java Application在JVM中的状态及资源使用情况Q非常好用?FONT face=Verdana color=#000000 size=2>