使用 Struts 2 标记将 java 方法的值传递给 javascript 变量
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5103775/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Passing value of a java method to a javascript variable using Struts 2 tag
提问by user608032
I have a JSP file
我有一个 JSP 文件
<%@ taglib prefix="s" uri="/struts-tags"%>
<% response.setContentType("application/javascript"); %>
var collegename = '<s:text name="student.collegename"/>';
student.collegename defined in messages.properties file. now i can use collegename variable in java script file.
在messages.properties 文件中定义的student.collegename。现在我可以在 java 脚本文件中使用 Collegename 变量。
Is there any tag in Struts2 by using those i can pass the java value to a java script variable ?
Struts2 中是否有任何标签通过使用我可以将 java 值传递给 java 脚本变量的标签?
for example:
例如:
var jsvariable = 'string value of a java method';
I have used this but its not worked:
Servlet code: HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("collegename", collegename);
JSP code:var collegename= '<%=request.getAttribute("collegename")%>';
Java Script code:alert("collegename"+collegename)
it show on IE:'collegename' is undefined
我已经使用过这个,但它没有用: Servlet 代码:
JSP 代码:
Java 脚本代码:
它在 IE 上显示:HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("collegename", collegename);
var collegename= '<%=request.getAttribute("collegename")%>';
alert("collegename"+collegename)'collegename' is undefined
please suggest
请建议
i have also try this:
Action class: 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);
我也试过这个:动作类: 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);
getter/setter for collegename property.
Collegename 属性的 getter/setter。
JSP code:<%@ taglib prefix="s" uri="/struts-tags"%>
<% response.setContentType("application/javascript"); %>
var collegename= '<%=request.getAttribute("collegename")%>';
JSP代码:<%@ taglib prefix="s" uri="/struts-tags"%>
<% response.setContentType("application/javascript"); %>
var collegename= '<%=request.getAttribute("collegename")%>';
Java Script code:alert("collegename"+collegename)
it show on IE: 'collegename' is undefined
Java Script 代码:alert("collegename"+collegename)
它在 IE 上显示:'collegename' 未定义
although it show getting attribute (college name) on console but it is not show on java script alert.
it show on IE: 'collegename' is undefined
虽然它在控制台上显示了获取属性(学院名称),但它没有显示在 java 脚本警报中。
它在 IE 上显示:'collegename' 未定义
please review.
请查阅。
回答by Alexey Ogarkov
You can use some like code.
您可以使用一些类似的代码。
var jsvariable = '<%=request.getAttribute("testattribute")%>';
Hope it helps
希望能帮助到你
回答by Steven Benitez
This will call the getSomeValue()method on your action class.
这将调用getSomeValue()您的操作类上的方法。
var collegename = '<s:property value="someValue" escapeJavaScript="true"/>';
回答by Wilson
How about using EL like ${userName} or OGNL %{userName}...
使用像 ${userName} 或 OGNL %{userName} 这样的 EL 怎么样?

