Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSP中使用Vue.js时,标记/指令冲突_Javascript_Java_Vue.js_Jsp - Fatal编程技术网

Javascript 在JSP中使用Vue.js时,标记/指令冲突

Javascript 在JSP中使用Vue.js时,标记/指令冲突,javascript,java,vue.js,jsp,Javascript,Java,Vue.js,Jsp,我试图在一个Java项目中使用Vue.js,其中模板是使用JSP呈现的。我已经能够将Vue库加载到页面中,并且也可以使用它 这项工作: <!-- code snippet from jsp --> <select id="foobar" v-on:change="doSomething($event)" class="form-control form-control-lg"> <option value="" selected>

我试图在一个Java项目中使用Vue.js,其中模板是使用JSP呈现的。我已经能够将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表单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-on
v-bind
等是否有任何解决方案或解决方法?

它认为标签的TLD不允许动态属性

即使它这样做了,它也(不一定)不知道将它们放在标记呈现的HTML中的什么位置:虽然
(很可能)只是呈现HTML
标记,但不能保证JSP标记会盲目地呈现您想要的动态属性

您可以扩展Spring标记(例如),但这不一定是一种直截了当的方法,因为您所做的不仅仅是附加HTML,而是插入HTML

您可以编写自己的自定义标记来执行相同的渲染,但如果不小心,您可能会错过一些以后可能会困扰您的功能


或者,您可以编写HTML以匹配Spring标记呈现的内容——对于简单的用例,这是最直接的路径。

我甚至不知道我可以将表单标记“翻译”为普通HTML,它可以与vue配合使用。我只是想知道我会错过什么摆脱标签。