【问题标题】:MultiColumn Spring Roo scaffold with Spring MVC带有 Spring MVC 的多柱 Spring Roo 脚手架
【发布时间】:2013-10-03 17:37:46
【问题描述】:

也许我在问一些蹩脚的问题,或者我太懒了,但仍然如此。就是这样:

有没有人找到一种简单的方法来获取 Spring Roo 生成的脚手架视图中的两列?

我对 Spring Roo 很陌生。事实上,对于 Spring 框架、Apache tile、jspx 和 tagx 来说,这是非常新的。

我正在寻找一种方法来修改 Spring Roo 生成视图的方式(如果有的话),这样我们将来进行彻底的改造会容易得多。

我知道显示的字段列表来自 Spring Roo 生成的文件:view/SOMEPATH/xxx.jspx,例如,其中“xxx.jspx”可以是 create.jspx。

如果我不想接触生成的 jspx 文件,我可以使用“id”列表手动修改演示文稿,在 css 中执行类似的操作:

#c_xxxx_yyy1, 
#c_xxxx_yyy2, 
#c_xxxx_yyy3, 
#c_xxxx_yyy4, 
#c_xxxx_yyy5 {
    stuff;
}  

如果您有许多实体,其中包含许多字段,则工作量很大。也许修改每个视图更容易。 (一如既往)

您还可以执行以下操作(当然 css 应该在资源文件中):

    --- create.jspx: ---
...
  <style>                          // ADD THIS
    .something                     // ADD THIS
    {                              // ADD THIS
      background-color:#b0c4de;    // ADD THIS
    }                              // ADD THIS
  </style>                         // ADD THIS
<form:create ...
    <field:select ...
    <field:select ...
    <field:select ...
    <div class="something">        // ADD THIS
        <field:input ...
        <field:input ...
        <field:input ...
        <field:input ...
    </div>                         // ADD THIS
...

也许有一种方法可以为所有奇数字段添加自定义 css 类,并为所有偶数字段添加另一种方法。或者也许有一个柜台。

我知道这听起来不可行。我觉得还是问问比较好。

还有其他建议吗?

【问题讨论】:

  • 忘了说我正在使用 Spring 和 Spring MVC 3.2.3.RELEASE 和 Spring Roo 1.2.4.RELEASE [rev 75337cf]。
  • 我将 Spring Roo 视为一种生成样板的方法。我不认为它的意图是按下按钮并拥有完整的定制解决方案。事实上,在我使用 Roo 完成的最后 20 个项目中,我什至没有生成单个脚手架,而是选择使用 plan-vanilla 控制器并制作我自己的 JSP。长话短说,我认为如果您想自定义 Spring Roo 生成的视图,您将无法修改 JSP 文件。
  • @CodeChimp:是的。这就是我写完这篇文章时的想法。感谢您的评论。
  • 没问题。如果您找到解决方案,我很乐意看到它。我只使用 Roo 来生成我的 JPA 实体、空服务和控制器,并引导 Spring Security 的东西。除此之外,我喜欢自己控制大部分其他代码。
  • 我认为我不会花时间在这上面。至少不是现在。正如我之前提到的,我现在正在做&lt;div class="something"&gt;。不过,我希望有人喜欢这个想法或已经有了解决方案。哈哈哈。

标签: java css spring spring-mvc spring-roo


【解决方案1】:

如果要更改影响很多实体的格式,可以修改spring roo生成的自定义标签。

Spring roo 包含一组自定义标签 (tagx),所有视图 (jspx) 都使用这些标签来呈现标记。这些标签仅在您第一次制作脚手架时由 spring roo 控制台下载。因此,您可以更改这些而不会丢失将来的更改。

但是,对于新版本的 spring roo,您可以要求重新下载这些标签,这将覆盖任何现有的标签。

因此,我推荐以下方法(假设您正在更改表格布局):

copy table.tagx to tableWithTwoColumns.tagx
customize tableWithTwoColumns.tagx as required
modify any views that need to use this new column to use tableCustom

spring roo 生成的标记使用的是现代网站不推荐的表格,因此我不建议对布局进行任何调整(除非您可以将标签转换为使用浮动 div 而不是表格)。

【讨论】:

  • 如果我问的是废话,请原谅,但我是瓷砖和标签的新手。在我的项目中,有一个生成的 create.jspx,其中包含 &lt;form:create ... 内的字段列表。我在 form/create.jspx 或其中使用的其他文件(例如 tags/form/create.tagx)中的任何地方都找不到table
  • First 如果我执行以下操作会正确吗?:a) 创建我的 tableWithColumns tagx 文件rowscolumns 整数参数,b) 添加命名空间xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields"c) 在create.jspx 和@ 中的字段前添加&lt;table:tableWithColumns rows=5 columns=2 ... &gt; 987654328@之后呢?
  • Second 当前 table.tagx 使用参数传递数据,不知道如何从行中获取它...也许与&lt;jsp:doBody /&gt;,但是怎么做一个foreach?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多