【问题标题】:spring doesn't execute javascript春天不执行javascript
【发布时间】: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


【解决方案1】:

在 web MVC 中,spring 用作服务器端技术。 Javascript 是客户端(浏览器)端技术,因此 Spring“不能”执行 javascript。

【讨论】:

  • 虽然这是正确的,但 OP 声明在一个请求中执行了 javascript,而在另一个请求中则没有。这个答案没有用。
猜你喜欢
  • 2011-09-23
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 2011-11-28
  • 2020-10-13
  • 2016-05-25
  • 2014-08-22
  • 2013-11-02
相关资源
最近更新 更多