---------------------------------------------------------------------------
好了,现在可以编写表示层的代码了。
文件地址:[WebContext/test/trade_record.jsp]
内容如下:
----------------------------------------------------------------------
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试-交易记录</title>
</head>
<script language="javascript" type="text/javascript">
/**
* 函数名: getSysAliasAss
* 功能描述: 获取运行系统别名(辅助)
*/
function getSysAliasAss(){
//读取系统当前请求的pathName
var strPathName = window.location.pathname;
//以字符串"/"分割到数组
var oAryTmp = strPathName.split("/");
//系统别名
var strSysAlias = "/" + oAryTmp[1];
//返回函数值
return strSysAlias;
}
/*
* 函数名称: getDocXML
* 功能: 数据文档对象
*
*/
function getDocXML(strXMLUrl){
var oXMLDoc = new ActiveXObject("Microsoft.XMLDOM");
oXMLDoc.async = false;
oXMLDoc.load(strXMLUrl);
//返回函数值
return oXMLDoc;
}
/**
* 函数名: queryUnsharp
* 功能描述: 模糊查询
*/
function queryUnsharp(){
//创建Ajax对象
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
//获取查询关键字
var strKeyword = keyword.value;
//确定请求的Url
var strUrl = getSysAliasAss() + "/sv/TradeRecordSV.do?dowith=queryUnsharp&keyword=" + strKeyword;
//发出请求
xmlHttpReq.open("GET", strUrl, false);
xmlHttpReq.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8;");
xmlHttpReq.send();
//读取数据
var oXML = xmlHttpReq.responseXML;
//alert(xmlHttpReq.responseText);
//样式表文档对象
var strXMLUrl = getSysAliasAss() + "/xml/lstTradeRecord.xsl";
var oXSL = getDocXML(strXMLUrl);
//转换为HTML代码
var strHTML = oXML.transformNode(oXSL);
//装载HTML
lstTradeRecord.innerHTML = strHTML;
detailTradeRecord.innerHTML ="";
//alert(strHTML);
//返回函数值
return oXML;
}
/**
* 函数名: findTradeRecord
* 功能描述: 模糊查询
*/
function findTradeRecord(iId){
//alert("[" + iId + "]");
if(iId == null || iId < 0){
return ;
}
//创建Ajax对象
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
//确定请求的Url
var strUrl = getSysAliasAss() + "/sv/TradeRecordSV.do?dowith=findTradeRecord&id=" + iId;
//发出请求
xmlHttpReq.open("GET", strUrl, false);
xmlHttpReq.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8;");
xmlHttpReq.send();
//读取数据
var oXML = xmlHttpReq.responseXML;
//alert(xmlHttpReq.responseText);
//样式表文档对象
var strXMLUrl = getSysAliasAss() + "/xml/detailTradeRecord.xsl";
var oXSL = getDocXML(strXMLUrl);
//转换为HTML代码
var strHTML = oXML.transformNode(oXSL);
//装载HTML
detailTradeRecord.innerHTML = strHTML;
//返回函数值
return oXML;
}
</script>
<body>
<p>使用标签配置JNDI:<br />
</p>
<hr width="100%" size="1" />
</p>
<table width="800" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td height="20" bgcolor="#CCCCCC">交易记录列表</td>
</tr>
<tr>
<td height="20"><hr width="100%" size="1" /> </td>
</tr>
<tr>
<td height="40" align="center"><p>查询内容:
<input name="keyword" type="text" id="keyword" size="40" />
<input name="query" type="button" id="query" value="查询" onclick="queryUnsharp();" />
</p>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td height="20" bgcolor="#FFFFFF" >
<span id="lstTradeRecord"></span> </td>
</tr>
</table>
<p> </p>
</td>
</tr>
<tr>
<td height="40" align="center" valign="top">
<span id="detailTradeRecord"></span>
</td>
</tr>
</table>
<p> </p></td>
</tr>
</table>
</body>
</html>
----------------------------------------------------------------------
下面是两个必要的样式表文件。
文件地址:[WebContext/xml/detailTradeRecord.xsl]
----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<xsl:for-each select="beans/bean/field">
<xsl:sort data-type="number" order="ascending"
select="@IndexOrder" /><!-- ascending descending -->
<tr>
<td width="35%" height="20" align="left">
<xsl:if test="@name = 'Id'">
<xsl:text disable-output-escaping="yes">
编号&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'TradeType'">
<xsl:text disable-output-escaping="yes">
交易类型&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'TimeBegin'">
<xsl:text disable-output-escaping="yes">
开始时间&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'GoodsName'">
<xsl:text disable-output-escaping="yes">
货品名称&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'GoodsInfo'">
<xsl:text disable-output-escaping="yes">
货品信息&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'Money'">
<xsl:text disable-output-escaping="yes">
总金额&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'MoneyInfo'">
<xsl:text disable-output-escaping="yes">
金额相关信息&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'TradePoint'">
<xsl:text disable-output-escaping="yes">
交易方向&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'User'">
<xsl:text disable-output-escaping="yes">
用户&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'Comrade'">
<xsl:text disable-output-escaping="yes">
交易伙伴&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'State'">
<xsl:text disable-output-escaping="yes">
状态&nbsp;
</xsl:text>
</xsl:if>
<xsl:if test="@name = 'Remark'">
<xsl:text disable-output-escaping="yes">
备注&nbsp;
</xsl:text>
</xsl:if>
</td>
<td width="3%">
<xsl:text disable-output-escaping="yes">
&nbsp;
</xsl:text>
</td>
<td width="62%" align="left">
<xsl:value-of select="." />
<xsl:text disable-output-escaping="yes">
&nbsp;
</xsl:text>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------
文件地址:[WebContext/xml/lstTradeRecord.xsl]
----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table width="100%" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td height="20" bgcolor="#FFFF33">交易类型</td>
<td height="20" bgcolor="#FFFF33">开始时间</td>
<td height="20" bgcolor="#FFFF33">货品名称</td>
<td height="20" bgcolor="#FFFF33">总金额</td>
<td height="20" bgcolor="#FFFF33">交易方向</td>
<td height="20" bgcolor="#FFFF33">交易伙伴</td>
<td height="20" bgcolor="#FFFF33">状态</td>
<td height="20" bgcolor="#FFFF33">操作</td>
</tr>
<xsl:for-each select="beans/bean">
<xsl:sort data-type="number" order="ascending"
select="@IndexOrder" /><!-- ascending descending -->
<tr>
<xsl:for-each select="field">
<xsl:if test="@name != 'Id'">
<td height="20" bgcolor="#FFFFFF">
<xsl:value-of select="." />
<xsl:text
disable-output-escaping="yes">
&nbsp;
</xsl:text>
</td>
</xsl:if>
</xsl:for-each>
<td height="20" bgcolor="#FFFFFF">
<input name="findTradeRecord" type="button"
id="findTradeRecord" value="详细">
<xsl:attribute name="onclick">findTradeRecord(<xsl:value-of select="field[1]" />);</xsl:attribute>
</input>
</td>
</tr>
</xsl:for-each>
<xsl:if test="count(beans/bean)=0">
<tr>
<td height="30" bgcolor="#FFFFFF" colspan="7">
<font color="red">没有找到数据!</font>
<xsl:text disable-output-escaping="yes">
&nbsp;
</xsl:text>
</td>
</tr>
</xsl:if>
</table>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------
好了,到此,可以编译发布了!
5.2 在同一个JVM中,使用依赖注入的方式访问本地容器中的EJB对象
现在我需要强调一点的是:在weblogic server中,如果你的servlet采用依赖注入(DI)的方式访问本地JVM中的EJB,必须要注意的是,web.xml中根节点[web-app]的属性[version]一定要等于[2.5]或者更高的版本,比如像写成下面这样:
----------------------------------------------------------------------
<web-app version="2.5">
----------------------------------------------------------------------
这里,需要提醒一点的是,我们之前写成:
----------------------------------------------------------------------
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
----------------------------------------------------------------------
它是不支持servlet中使用依赖注入的方式访问EJB3的。
还有一点就是:依赖注入只能注入本地服务器的对象,不能注入远程服务器的对象。
可以去这里参考一下:[http://edocs.bea.com.cn/wls/docs100/webapp/annotateservlet.html]