簡體   English   中英

在 JSP 中使用 Vue.js,標簽/指令沖突

[英]Using Vue.js in JSP, tags/directives conflict

我正在嘗試在使用 JSP 呈現模板的 Java 項目中使用 Vue.js。 我已經能夠將 Vue 庫加載到頁面中,並且也可以使用它。

這有效:

<!-- code snippet from jsp -->
<select id="foobar"
    v-on:change="doSomething($event)"
    class="form-control form-control-lg">
        <option value="" selected>Do your choice...</option>
        <option value="foo">foo</option>
        <option value="bar">bar</option>
</select>

但是,使用 vue 指令以及例如 spring-form JSP 標簽:

<form:select
     path="something"
     v-on:change="blabla($event)"> <!-- also tried `@change` but still no success -->
     <form:options items="${yadayada}" itemValue="id" itemLabel="name" />
</form:select>

我收到此錯誤:

屬性前綴 [v-on] 不對應任何導入的標簽庫

我猜想 JSP 引擎認為v-on應該是來自外部 Java/JSP 庫的東西,但事實並非如此。 在這種情況下,是否有任何解決方案或解決方法可以使用v-onv-bind等?

它認為標簽的 TLD 不允許動態屬性。

即使這樣做了,它也不會(必然)知道將它們放在標記呈現的 HTML 中的哪個位置:雖然<form:select> (可能)只是呈現一個 HTML <select>標記,但不能保證JSP 標記會盲目地在你想要的地方渲染動態屬性。

您可以擴展Spring 標簽(例如, https : //stackoverflow.com/a/9891714/438992 )但這不一定是一種直接的方法,因為您所做的不僅僅是添加額外的 HTML--您重新插入HTML。

您可以編寫自己的自定義標記來執行相同的渲染,但如果不小心,您可能會錯過一些可能會在以后困擾您的功能。

或者您可以只編寫 HTML 以匹配 Spring 標記呈現的內容——對於簡單的用例,這是最直接的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM