从JavaScript访问struts操作中的属性

Accessing property in my struts action from JavaScript

本文关键字:属性 操作 struts JavaScript 访问      更新时间:2023-09-26

我仍在努力了解客户机-服务器通信如何与JSP/js和Struts一起工作。我的操作中有一个Struts属性,可以使用据我所知,这是通过在Action中查找一个名为getMyMessage()的方法来实现的。所以这对我来说还可以。我现在希望能够从我的Javascript中访问这个值,这样我就可以在页面加载时动态填充测试区域。我使用

$(document).ready(function( data )
{
$('#contextsTextArea').html(data.myMessage);
});

但这并不奏效。我知道我可以在JSP中分配一个存储struts属性的var,并在JS中引用这个var,但有更干净的方法吗?

JSP在服务器上运行,JavaScript在浏览器中运行。

不能在JavaScript中使用类似"myMessage"的JSP变量作为变量。然而,您可以在服务器上将其转换为文本,这样当它到达您的浏览器时,它就可以作为JS工作。所以,试试这样的东西:

$('#contextsTextArea').val('<s:property value="myMessage"/>')

当在服务器上处理此JSP时,JS代码将保留为文本,而标记将转换为myMessage变量中的文本。

请注意,您确实需要JS转义myMessage,否则,例如,如果消息包含一个引号,则JS将中断。

看看你的页面来源,了解这里发生了什么。

如果您谈论的是textarea,则必须使用.val()。如下所示。$('#contextsTextArea').val(data.myMessage);