【发布时间】:2013-12-20 15:54:09
【问题描述】:
我在我的项目中使用 Spring MVC 3。
这是我的地址控制器:
@Controller
public class AddressController {
private static Logger logger = Logger.getLogger(AddressController.class);
@RequestMapping(value="/address",method=RequestMethod.GET)
public ModelAndView init(
@RequestParam(value="language",required=false,defaultValue="fr") String language){
Locale locale = new Locale(language);
logger.info("here");
String[] isoCountries = locale.getISOCountries();
Map<String,String> treeMap = new TreeMap<String,String>();
for(String isoCountry : isoCountries){
Locale countryLoc = new Locale(language, isoCountry);
String name = countryLoc.getDisplayCountry(locale);
if(!"".equals(name)){
treeMap.put(name,name);
}
}
Map<String,String> tree = new TreeMap<String,String>(treeMap);
ModelAndView modelAndView = new ModelAndView("address");
modelAndView.addObject("address",new Address());
modelAndView.addObject("countriesList", tree);
return modelAndView;
}
}
第一次,当我执行 /address 时,它对我的控制器运行良好,它通过执行最后一个中的 javascript 返回我的 address.jsp。但是当我执行 /address?language=fr 或 /address?language=en 时,我的 address.jsp 的 javascript 代码没有被执行。
这是我 address.jsp 的一部分:
<%@page import="org.springframework.context.i18n.LocaleContextHolder"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="forms" uri="http://www.springframework.org/tags/form" %>
<%@page import="com.application.myGoogleAppEngine.Internationale"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.Locale" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Collections" %>
<html>
<head>
<jsp:include page="ressources.jsp"></jsp:include>
<link rel="stylesheet" type="text/css" href="stylesheets/320x480/portrait/address.css" />
<%! Internationale internationale = Internationale.getInstance(); %>
<script>
$(document).ready(function(){
//checkParams();
alert("here");
var unit = "em";
alert("here2");
$("#backButton").attr("href","/index");
$('#validationBtn').click(function(){
var streetName = $('#streetName').val();
var streetNumber = $('#streetNumber').val();
var zipCode = $('#zipCode').val();
var city = $('#city').val();
var country = $('#country').val();
var ref = "MyServlet?streetName="+streetName+"&streetNumber="+streetNumber+"&zipCode="+zipCode+"&city="+city+"&country="+country;
$(this).attr("href",ref);
});
});
//rest of the script
</script>
<body>
<a id="backButton" data-role="button" data-icon="arrow-l"
data-ajax="false">
<spring:message code="backButton"/>
</a></div>
//rest of the code
</body>
【问题讨论】:
-
请出示
ressources.jsp。 -
Spring 不执行 javascript。 JSP 的目的是生成将发送到客户端的 HTML/JS 代码。然后客户端执行javascript。您应该尝试查看客户端在第二种情况下收到的内容。
-
OP并不是说Spring自己执行了javascript,他应该说“在他的spring应用程序中没有执行javascript”。我的 aive 是打开 firebug,你可能在某个地方有一个 javascript 错误,这就是你的 javascript 没有执行的原因
标签: java javascript spring jsp