使用Struts 2标记将java方法的值传递给javascript变量

时间:2011-02-24 11:06:41

标签: java javascript jsp struts2 jstl

我有一个JSP文件

<%@ taglib prefix="s" uri="/struts-tags"%>
<% response.setContentType("application/javascript"); %>

var collegename = '<s:text name="student.collegename"/>';

student.collegename在messages.properties文件中定义。 现在我可以在java脚本文件中使用collegename变量。

Struts2中是否有任何标记使用我可以将java值传递给java脚本变量的那些?

例如:

var jsvariable = 'string value of a java method';

我已经使用了这个,但它不起作用:   Servlet代码:HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("collegename", collegename);

  JSP代码:var collegename= '<%=request.getAttribute("collegename")%>'; Java脚本代码:alert("collegename"+collegename)
它在IE上显示:'collegename' is undefined

请建议

我也试过这个: 行动类:import javax.servlet.http.HttpServletRequest; HttpServletRequest request; HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("collegename", collegename); System.out.println("now getting attribute-----"); String attr=(String) request.getAttribute("cname"); System.out.println("attr is:::"+attr);

getgen / setter for collegename property。

JSP代码:<%@ taglib prefix="s" uri="/struts-tags"%> <% response.setContentType("application/javascript"); %> var collegename= '<%=request.getAttribute("collegename")%>';

Java脚本代码:alert("collegename"+collegename)   它在IE上显示:'collegename'未定义

虽然它在控制台上显示获取属性(大学名称)但在java脚本警报中没有显示 它在IE上显示:'collegename'未定义

请查看。

3 个答案:

答案 0 :(得分:4)

您可以使用类似的代码。

var jsvariable = '<%=request.getAttribute("testattribute")%>';

希望有所帮助

答案 1 :(得分:4)

这将在您的操作类上调用getSomeValue()方法。

var collegename = '<s:property value="someValue" escapeJavaScript="true"/>';

答案 2 :(得分:-1)

如何使用EL,如$ {userName}或OGNL%{userName} ...