使用 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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-25 15:57:01  来源:igfitidea点击:

Passing value of a java method to a javascript variable using Struts 2 tag

javajavascriptjspstruts2jstl

提问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 怎么样?