2013-01-11 33 views
0

我試圖從內部的Struts調用JS功能:Struts的未結束的字符串常量錯誤調用JS功能

<s:iterator value="%{foo}" status="stat"> 
    <a id="idname" href="#" onClick="javascript:getValue('<s:property value="news"/>'); return false;"><s:property value="newsName" /></a> 
</s:iterator> 

當我這樣做,我得到一個未終止字符串常量錯誤。然而,當我使用我有逃脫的值:

當我用「新聞」變量的字面意義:

<s:iterator value="%{foo}" status="stat"> 
    <a id="idname" href="#" onClick="javascript:getValue('http:&#47;&#47;www.cnn.com&#47;2013&#47;01&#47;10&#47;travel&#47;flight-movie-united-232&#47;index.html?iref=obnetwork');return false;">   
    <s:property value="newsName" /></a> 
</s:iterator> 

沒有這樣的錯誤被拋出。

的價值:

<s:property value="news"/> 

是字符串:

http:&#47;&#47;www.cnn.com&#47;2013&#47;01&#47;10&#47;travel&#47;flight-movie-united-232&#47;index.html?iref=obnetwork 

我已經將其輸出到頁面選中此。

而且,不,我不必逃避財產本身;這個工程:

<a id="idname" href="#" onClick="javascript:getValue('http://www.blah.com/<s:property value="otherValue"/>');return false;"><s:property value="userName" /></a> 
+0

我沒有得到這個錯誤與新聞價值,你提供;您可能需要提供更多信息。你確定這是導致錯誤的特定項目嗎?國際海事組織你應該總是JS逃脫任何你想用作JS字符串。 –

+0

Dave-我提供的值*是*一個JS轉義字符串。這是一個帶有/的網址,而不是\ – user1969787

+0

我明白了具體的例子。我也不知道它是如何產生/等,所以*我*不知道它的適用性。我說的是,鑑於你提供的例子,我沒有得到錯誤。 –

回答

0

我無法重現該問題。

看看下面的來源:找到不同的東西(在功能級別),你很可能會發現錯誤。 (在大多數情況下,剪切和粘貼從現場的應用程序,雖然我手工編輯一些名字。)

Foo.java,以保存數據:

public class Foo { 
    private String news; 
    private String newsName; 
    // Plus public getters and a ctor to init. 
} 

AnAction。 java的,創建並公開名單:

public class AnAction extends ActionSupport { 

    private List<Foo> foo; // Plus public getter. 

    public String execute() throws Exception { 
     foo = Arrays.asList(new Foo("http:&#47;&#47;www.cnn.com&#47;2013&#47;01&#47;10&#47;travel&#47;flight-movie-united-232&#47;index.html?iref=obnetwork", "YOOOOOO!")); 
     return SUCCESS; 
    } 
} 

struts.xml的,配置:

<action name="a" class="test.AnAction"> 
    <result>/WEB-INF/jsps/a.jsp</result> 
</action> 

a.jsp,視圖層:

<%@ taglib prefix="s" uri="/struts-tags" %> 

<html> 
    <body> 
    <s:iterator value="%{foo}" status="stat"> 
     <a id="idname" href="#" onClick="getValue('<s:property value="news"/>'); return false;"><s:property value="newsName" /></a> 
    </s:iterator> 
    </body> 
</html> 
+0

戴夫 - 非常感謝您的幫助。我只是前端人物,我查看了Java代碼,沒有什麼突出的。我知道更多後我會更新你。 – user1969787

相關問題