最近要做一个WEB的小工具, 已有的代码都是用JSP写的。 又想用我自己实现的js-web,所以就想到了用javascript写后台的代码,用JSTL来表现。 javascript在服务器端运行的问题前面解决了,但是用JSTL来输出javascript的对象和在JSP中如何调用服务端的JS是这次才实现的。
1。 在JSP中调用服务器端的javascript使用了一个自自定义标签:
<%@ taglib uri="http://www.jsweb.org/tag/js-web" prefix="js" %>
<!--运行一个服务器端 javascript -->
<js:exec file="/js/jstl.js" />
2。 如何将JavaScript的对象转换为,JSTL能识别的Java对象呢? 定义了一个JavaScriptMap和JavaScriptCollection分别实现了Map和Collection两个接口。 可以将任意的Javascript对象以MAP/Collection方式传到JSP上面。
//取一个HTTP的参数,
var username = web.param('name');
//保存到HTTPRequest 的attribute中。
web.attr('username', username);
web.attr('map', {foo:'foo value', foo2:'foo2 value'});
//保存到Session中。
web.session('list', ['one', 'two', 'three', 'four']);
print("Hello, this a javascript running server side");
3。 再看JSP中的代码:
<%@ taglib uri="http://www.jsweb.org/tag/js-web" prefix="js" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<div>
<h1><js:exec file="/js/jstl.js" /></h1>
<div>
<div>
<h1>Request parameter</h1>
Hello, <c:out value="${username}" />
<div>
<div>
<h1>Javascript map</h1>
Map:<br/>
foo-><c:out value="${map.foo}" /><br/>
foo2-><c:out value="${map.foo2}" /><br/>
<div>
<h1>Javascript list</h1>
<c:forEach items="${list}" var="e">
<c:out value="${e}" /><br/>
</c:forEach>
<div>
4。如何实现JavaScript服务器端访问数据库:
function init_connection(){
if (!dbd){
//导入数据操作Library, 在js-shell项目中实现。
var dbd = __import__('DB', null, {})
dbd.driver('org.sqlite.JDBC');
}
return dbd.connect("jdbc:sqlite:" + web.realpath("/WEB-INF/") + "/message.db");
}
//一个查询的例子
function list_message(){
var conn = init_connection();
.....
//the two lines can combine to one,
//var list = conn.select_list("select * from messages");
var rs = conn.select("select * from messages");
var list = rs.fetch_rows();
......
return list;
}
//一个插入纪录的例子
function add_message(){
var conn = init_connection();
....
conn.insert("messages", web.param(), ['title', 'message', 'username']);
conn.close()
}
5。 完整的代码下载地址: http://js-web.googlecode.com/files/message-board.war
最先在考虑数据库操作的时候,想调用JPA,发现相关联的包太多了。最后使用了简单的JDBC方式操作。最近兴趣转移了,很久没有更新了,前几天需要做一个小工具的时候,才又想起了js-shell。加入了一些新的功能,包括数据库操作和Logging方面的Library.
分享到:
相关推荐
实现了从数据查询图书,并通过Servlet+el+jstl+jsp技术,显示在表示层
基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip...
jsp+jstl实现分页,简单的分页
fileup.jar+json.jar+js.jar+jstl.jar四合一jar包 名称知识个代表 包里面含有很多的jar包 都是编程常用的
standard.jar+jstl.jar standard.jar+jstl.jar standard.jar+jstl.jar standard.jar+jstl.jar
使用EL JSTL表达式 servlet和分页进行编码 新闻管理系统
网上书店 jsp jstl1.1+el+sql2000+javabean 网上书店 jsp jstl1.1+el+sql2000+javabean 网上书店 jsp+jstl1.1+el+sql2000+javabean 网上书店 jsp+jstl1.1+el+sql2000+javabean 网上书店 jsp+jstl1.1+el+sql2000+...
程序员必备API大全(CHM格式)包含jquery+jstl+servlet+js+css+正则表达式
关于jsp+servlet+jstl、自定义标签和Tomcat配置数据库连接池等内容的详细使用.很实用的,欢迎大家下载!
非常完整,易于理解,条理清晰,导入即可运行,适合初学servlet和jsp技术或者想理清jsp技术的人,完整简洁的jsp+servlet+jstl实例。
Servlet+jstl标签模拟购物车(书本订购)
spring3.0.4+hibernate3.5.0+proxool 0.9.1+jstl整合最新的JAVA WEB框架,没有使用struts2,视图层使用spring MVC.
hibernate+dwr+spring+jstl的demo
购物车+学生管理系统+JSTL库
Tomcat+JavaWeb+JDBC+JSTL+jQuery集合文件(压缩包)
JSP做的一个论坛MVC+DAO+JSTL
EL+JSTL的相关笔记
用jsp+servlet+EL表达式+JSTL写的分页代码,页面和servlet有详细的注释
ssm框架+jstl标签库实现查询的小案例
servlet+JSTL+JSP增删改查,简单的,很详细,初学者适合