目的を正確に達成する方法は、JSP ファイルと JS ファイルの内容によって異なりますが、これは考えられる解決策の 1 つです。
JS:
function setDivInnerHTML(html1, html2) {
document.findElementById("div1").innerHTML = html1;
document.findElementById("div2").innerHTML = html2;
}
JSP:
...
<script>
setDivInnerHTML("<fmt:message key="word_from_DB"/>", "<fmt:setLocale value="en"/>");
</script>
...
コメントに基づいて編集:
JSP (URL = "/都市"):
String country = request.getParameter("country");
String locale = request.getParameter("locale");
List<City> cities = getCitiesFromDB(country, locale);
out.println(objectToJSON(cities));
JS (jQuery を使用):
function createOption(val, html) {
return $("<option></option>").html(html).val(val);
}
function populateCities(cities) {
var $select = $("#city_select");
$select.empty();
for (var i = 0; i < cities.length; i++) {
var $opt = createOption(cities[i].name, cities[i].name);
$select.append($opt);
}
}
function getCities(country, locale) {
var url = "/cities";
return $.ajax(url, {
data: {
country: country,
locale: locale
}
});
}
// call this to load the initial cities
// and do the same thing when a new country or locale is selected
getCities(country, locale).then(populateCities);