Spring Roo を使用して、ajax 呼び出しを行い、Ajax 呼び出しからの検索フォームをページのセクションに入力するページを作成しています。これはすべて、標準の Roo タグと Javascript ライブラリを使用して行われます。Ajax によって返されるフォームは単純で、選択リストが 1 つだけです。
<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields"
xmlns:form="urn:jsptagdir:/WEB-INF/tags/form"
xmlns:springform="http://www.springframework.org/tags/form"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:spring="http://www.springframework.org/tags" version="2.0">
<div>
<jsp:directive.page contentType="text/html;charset=UTF-8" />
<jsp:output omit-xml-declaration="yes" />
<form:search
id="fc_domain_profile_combination"
modelAttribute="combination" path="/profiles/search/combinations"
z="e2lXrqKKD2CS7Zjefas2ZXPW4xYNM=">
<field:select field="searchProcessingCenter" renderempty="true" disabled="true"
id="c_profile_combofilter_processingcenter"
items="${proccenters}" path="/profiles"
itemLabel="name" itemValue="id"/>
</form:search>
<input type="hidden" id="blockSubmitHd" value="false" />
</div>
このコードは Firefox と Google Chrome では問題なく動作しますが、IE では「不明なエラー」で失敗します。問題は、Roo に含まれる Ajax メソッドで発生します。
function callXhrGet(contentId, ajaxUrl){
var _targetNode = dojo.byId(contentId);
var xhrArgs = {
url: ajaxUrl,
preventCache: true,
handleAs:"text",
load: function(data) {
dojo.html.set(_targetNode,data,{parseContent:true});
dojo.forEach(dojo.query("script", _targetNode),function(node){
dojo.eval(node.innerHTML);
});
dojo.parser.parse(_targetNode);
},
error: function(error) {
_targetNode.innerHTML = "An unexpected error occurred: " + error;
}
};
dojo.xhrGet(xhrArgs);
}
dojo.eval(node.innerHTML);
次の行を処理しようとすると失敗します。
Spring.addDecoration(new Spring.ElementDecoration({elementId : '_searchProcessingCenter_id', widgetType: 'dijit.form.FilteringSelect', widgetAttrs : {hasDownArrow : true, required : false, invalidMessage: 'Please enter valid Role Type' }}));
興味深いのは、リストが空の場合は正常に機能し、他のdijit.form.tags
機能も正常に機能することです。この問題を解決するためのアドバイスやフィードバックはありますか?