我对groovy的认识比较少也比较浅,只知道groovy是一种动态脚本语言,它和java的JVM无缝结合,做了一个demo,觉得这个效果很不可思议,所以就记了一下。
我们知道我们运行一个程序,都需要run as->java application,然后程序就跑完了,每次向查看结果都需要启动一次,如果我写了一个查看当前年月日的函数,我只需要编写以下代码即可
public class ScriptImpl
{
public static String getDate()
{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
System.out.println(formatter.format(date));
return formatter.format(date);
}
public static void main(String[] args) {
getDate();
}
}
但是如果我想在网页上动态的现实日期,你该怎么实现呢?还能像刚才那样吗?
显然不行,不过不用担心,这就是本文要实现的功能,我制作了一个页面,只有一个输入框和一个按钮,两个表单,输入框中输入scriptImpl.getData()(其中scriptImpl为对象名,类是ScriptImpl,其中的getDate()是该类的一个方法),点击提交即可,然后就能动态的显示当前年月日,效果如下图
当然图形并不好看,写的太过粗糙,但是想表达的意思就是这些。
表单代码
<body>
<input type="text" name="date" id="date" size="60" /><br />
<input type="button" οnclick="submit()" value="提交" />
</body>
就原理而言,就是在表单中输入,点击提交按钮,通过jquery的ajax的url传给后台,后台使用的是spring mvc技术,映射传递的url,
function submit() {
var script = $("#date").val();
var url = "xxx/xxx/xxx";
$.post(url, {
param : param
}, function(value) {
alert(value.result);
});
};
然后是spring mvc的controller,通过String param= request.getParameter("param");获得表单的值,然后作为参数传递给groovy引擎,这里只讲述原理,代码由于某些原因,不公开,用到了GroovyBinding.evaluate()、GroovyShell绑定GroovyBinding类,在spring注入时不要忘记将ScriptImpl注入
<bean id="scriptImpl" class="xxx.xxx.xxxx.ScriptImpl"></bean>
由于本文代码不能完全公开,导致写的可能有些虎头蛇尾,但是写作的初衷已达到,望朋友们见谅。
如果文章有什么错误或者有什么建议,欢迎提出,大家共同交流,一起进步
文章转载请注明出处,请尊重知识产权