从body添加<style>和<script>并将其放在头部</style>

时间:2013-08-07 05:14:59

标签: jquery spring-mvc spring-roo jspx

我正在使用Spring Roo 1.2.4来完成这个主题。我知道要在PROJECT_FOLDER/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx上添加添加用户定义的默认样式和脚本。就我而言,我有一些.jspx只需要特定视图上的其他样式和脚本。

<击> 当我在<style>文件上查看包含<script>.jspx标记的网页时,<style>会得到呈现并相应地发挥作用。但<script>标记不起作用,尤其是在使用JQuery库进行对话时。 我在webapp下的脚本文件夹中添加了jquery库。

  

已修复,因为jquery.js已在jquery-ui.js下方呈现,其中jquery.js应首先呈现。

由于HTML标准,在正文部分中添加<style><script>标记可能不合适。有没有办法让特定<style>上的<script>.jspx代码在<head>部分呈现,而不是在<body>部分呈现?

1 个答案:

答案 0 :(得分:1)

爪哇,

我认为我会做的是以下3个步骤。我的解决方案是基于某些页面如何定义菜单,有些不是。相同的基本原则。

将模板placholder添加到默认布局

也就是说,在/src/main/webapp/WEB-INF/layouts/default.jspx中,添加一个带有ignore = true的tiles:insertAttribute标记,例如跟随头部:

    <!-- FIXME Can't move scripts to the bottom of 
      page because of how spring tags do the fields-->
    <util:load-scripts />
    <tiles:insertAttribute name="pagespecificscripts" ignore="true" />

    <spring:message code="application_name" var="app_name" htmlEscape="false"/>
    <title><spring:message code="welcome_h3" arguments="${app_name}" /></title>
</head>

将特定于页面的脚本添加到与视图

相同的文件夹中

也就是说,如果您的实体名为“pizza”,请将以下内容添加到/ src / main / webapp / WEB-INF / views / people:

<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
    <script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"><!-- required for FF3 and Opera --></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"><!-- required for FF3 and Opera --></script>
    <script type="text/javascript" src="http://www.alpacajs.org/js/alpaca.min.js"><!-- required for FF3 and Opera --></script>
    <script src="${areYouSure_js}" type="text/javascript"><!-- required for FF3 and Opera --></script>
    <link type="text/css" href="http://www.alpacajs.org/css/alpaca.min.css" rel="stylesheet"/>
</jsp:root>

在views.xml

中定义切片定义属性

更新实体特定的tiles views.xml以设置我们在步骤1中定义的可选属性。即,将以下内容添加到/src/main/webapp/WEB-INF/views/people/views.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
    <definition extends="default" name="people/list">
        <put-attribute name="body" value="/WEB-INF/views/pizza/list.jspx"/>
        <put-attribute name="pagespecificscripts" value="/WEB-INF/views/pizza/pagespecificscripts.jspx"/>
    </definition>

这些步骤可以帮助您顺利进行。

希望有帮助...