私のウェブアプリでは、struts2-jqueryプラグインを使用しています。
Struts2 version - 2.3.7
struts.jquery.version - 3.5.0
StrutsでjQueryを使用するために、次の構成を使用しました-
pom.xml内
<dependency>
<groupId>com.jgeppert.struts2.jquery</groupId>
<artifactId>struts2-jquery-plugin</artifactId>
<version>${struts.jquery.version}</version>
</dependency>
私のJSPに次のタグを追加しました:
<sj:head jqueryui="true"/>
そして、autocompleter
このようなウィジェットを使用しました:
<s:url var="supUrl" namespace="/ajax" action="suppliers"/>
<sj:autocompleter
id="supplierMap"
name="echo"
label="Handle a Map"
href="%{supUrl}"
list="supplierMap"/>
次のJavaScriptエラーが発生します。
Cannot call method 'bind' of undefined
jQuery.struts2_jquery_ui.bind(jQuery('#supplierMap_widget'),options_supplierMap_widget);
ブラウザでページソースを表示すると、次のように表示されます。ここで、JavaScriptインクルードのパスは、struts2-jquery-plugin.jarにパッケージ化されている方法と同じではありません。
<script type="text/javascript" src="/struts/js/base/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="/struts/js/base/jquery.ui.core.min.js?s2j=3.5.0"></script>
<script type="text/javascript" src="/struts/js/plugins/jquery.subscribe.min.js"></script>
<script type="text/javascript" src="/struts/js/struts2/jquery.struts2.min.js?s2j=3.5.0"></script>
<script type="text/javascript">
$(function() {
jQuery.struts2_jquery.version="3.5.0";
jQuery.scriptPath = "/struts/";
jQuery.ajaxSettings.traditional = true;
jQuery.ajaxSetup ({
cache: false
});
jQuery.struts2_jquery.require("js/struts2/jquery.ui.struts2.min.js");
});
</script>