首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JS 服务端编程 + JSTL 的留言板事例

2012-11-09 
JS 服务端编程 + JSTL 的留言板例子最近要做一个WEB的小工具, 已有的代码都是用JSP写的。 又想用我自己实现

JS 服务端编程 + JSTL 的留言板例子

最近要做一个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.

?

?

?

1 楼 jindw 2009-01-11   想法不错,只是,有那些运用场景呢?
我最近也在搞一个基于js表达式语法的模板引擎:
http://www.xidea.org/project/lite/
有空多多交流。 2 楼 kgd924 2009-01-12   jindw 写道
想法不错,只是,有那些运用场景呢?我最近也在搞一个基于js表达式语法的模板引擎:http://www.xidea.org/project/lite/有空多多交流。

没有考虑什么应用场景,使用js作服务端编程也就是个人的想法而已。

前段时间做js-web的时候就是没有找到好的js模板引擎,所以停止了一段时间。本来想用common-template的,没有想到js对象到java对象转换的办法。现在还是在考虑用common-template了。

热点排行