重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。
创新互联是专业的岷县网站建设公司,岷县接单;提供成都网站建设、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行岷县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
在Java中直接调用js代码
不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert” is not defined。
package com.sinaapp.manjushri;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; /** * 直接调用js代码 */
public class ScriptEngineTest {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try{
engine.eval("var a=3; var b=4;print (a+b);");
// engine.eval("alert(\"js alert\");"); // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不存在的异常
}catch(ScriptException e){
e.printStackTrace();
}
}
}
public void outString(String str) {
try {
getResponse().setContentType("text/json;charset=utf-8");
PrintWriter out = getResponse().getWriter();
out.write(str);
} catch (IOException e) {
}
}
//字符串转换为json
public void outJsonString(String str) {
outString(str);
}
// 对象转换JSON格式
public void outJson(Object obj) {
try {
String json=JSONObject.fromObject(obj).toString();
outJsonString(json);
} catch (Exception e) {
e.printStackTrace();
}
}
// 数组转换JSON格式
public void outJsonArray(Object array) {
try {
outJsonString(JSONArray.fromObject(array).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
后台:ListQuestionsOptions questionsOptionsList=new ArrayListQuestionsOptions() ;
outJsonArray(questionsOptionsList);
jquery 代码:
$.ajax({
url:'questionsOptionsList.action',
type:'post',
data:loadValue, //传给后台的参数
dataType:'json', //返回值类型 一般设置为json
success:function (data, status) //服务器成功响应处理函数
{
showHTML(data);
},
error:function (data, status, e)//服务器响应失败处理函数
{
alert(e);
}
});
function showHTML(data) {
for(var i=0;idata.length;i++){
alert(data[i].Content);
}
}
js 不应该负责加密解码,
应该只负责传递数据,可以传递加密前的,也可以传递加密后的
加密解码的工作都应该放在服务端来处理
Java 代码如下:
%
// 得到要转换的数组---当然这里也可以是其他类型的数组
List jsList = (List) request.getAttribute("gczbh");
%
JS 代码如下:
script type="text/JavaScript"
function initPages()
{
var codes = new Array();
// 将JAVA中的数组转换成JS 的数组
%
if(jsList!=null)
{
for(int i=0;ijsList.size();i++)
{
%
codes[%=i%]='%=jsList.get(i)%';
% }
}
%
/script