标签: tiles

如何创建网格/平铺视图?

例如,我有一些类.article,我想将此类视为网格视图.所以我应用了这种风格:

.article{
  width:100px;
  height:100px;
  background:#333;
  float:left;
  margin:5px;
}
Run Code Online (Sandbox Code Playgroud)

该样式将使.article看起来平铺/网格.固定高度可以正常工作.但是如果我想将高度设置为自动(根据其中的数据自动拉伸),网格看起来很讨厌.

在此输入图像描述

而我想这样的观点:

在此输入图像描述

css grid positioning tiles css-float

123
推荐指数
4
解决办法
7万
查看次数

我为什么要使用模板引擎?jsp include和jstl vs tiles,freemarker,velocity,sitemesh

我即将选择组织我的观点(使用spring-mvc,但这不应该太重要)

据我所知,有6个选项(尽管它们并不相互排斥):

  • 瓷砖
  • SiteMesh的
  • Freemarker的
  • 速度
  • <jsp:include>
  • <%@ include file="..">

TilesSitemesh可以分组; 所以可以的Freemarker速度.每个小组中使用哪一个不是这个讨论的问题,有足够的问题和讨论.

这是一个有趣的读物,但不能说服我使用瓷砖.

我的问题是 - 这些框架提供的内容 <@ include file="..">与JSTL 无法正常完成.要点(一些来自文章):

  1. 包括部分页面,如页眉和页脚 - 之间没有区别:

    <%@ include file="header.jsp" %>
    
    Run Code Online (Sandbox Code Playgroud)

    <tiles:insert page="header.jsp" />
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在标题中定义参数 - 如标题,元标记等.这非常重要,尤其是从SEO的角度来看.使用模板选项,您只需定义每个页面应定义的占位符.但是你可以在jsp中使用JSTL,使用<c:set>(在包含页面中)和<c:out>(在包含的页面中)

  3. 布局重组 - 如果要在菜单上方移动面包屑,或在另一个侧面板上方移动登录框.如果页面包含(使用jsp)组织不当,则可能需要在这种情况下更改每个页面.但是如果你的布局不是太复杂,并且你把常见的东西放在页眉/页脚中,就没有什么可担心的了.

  4. 公共组件和特定内容之间的耦合 - 我没有发现这个问题.如果要重用某些片段,请将其移动到不包含任何页眉/页脚的页面,并在需要的地方包含它.

  5. 效率 - <%@ include file="file.jsp" %>比其他任何东西都更有效,因为它被编译一次.所有其他选项都被解析/执行多次.

  6. 复杂性 - 所有非jsp解决方案都需要额外的xml文件,其他包括,预处理器配置等.这既是学习曲线又是引入更多潜在的失败点.此外,它使支持和更改变得更加乏味 - 您必须检查许多文件/配置以了解正在发生的事情.

  7. 占位符 - 速度/自由标记比JSTL更多吗?在JSTL中,您放置占位符,并使用模型(放置在请求或会话范围内,由控制器)来填充这些占位符.

所以,说服我除了普通的JSP之外我应该使用上面的任何框架而不是/.

java jsp velocity freemarker tiles

95
推荐指数
4
解决办法
3万
查看次数

我可以从lib中的JAR内部提供JSP,还是有解决方法?

我在Tomcat 7中将一个Web应用程序部署为WAR文件.该应用程序构建为一个多模块项目:

  • core - 打包为JAR,包含大部分后端代码
  • core-api - 打包为JAR,包含对核心的接口
  • webapp - 打包为WAR,包含前端代码并依赖于核心
  • customer-extensions - 可选模块,打包为JAR

通常,我们可以将JSP文件放在webapp项目中,并相对于上下文引用它们:

/WEB-INF/jsp/someMagicalPage.jsp
Run Code Online (Sandbox Code Playgroud)

问题是我们如何处理特定于客户扩展项目的JSP文件,这些文件不应始终包含在WAR中.不幸的是,我看不到JAR文件中的JSP.尝试classpath:jsp/customerMagicalPage.jsp在JspServlet中找不到的文件,因为它使用了ServletContext.getResource().

传统上,我们"解决"了maven解包客户扩展JAR,定位JSP,并在构建它时将它们放入WAR中.但理想的情况是,您只需在Tomcat中的爆炸WAR中放置JAR并发现扩展 - 这适用于除JSP之外的所有内容.

反正有没有解决这个问题?标准方式,特定于Tomcat的方式,黑客还是变通方法?例如,我一直在考虑在应用程序启动时解压缩JSP ...

java jsp tomcat servlets tiles

61
推荐指数
2
解决办法
3万
查看次数

NoClassDefFoundError:org/slf4j/impl/StaticLoggerBinder

我正在尝试运行此处给出的示例切片示例.

下面是我的POM.xml:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-api</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-core</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.2</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

当我试图运行该示例时,抛出以下错误:

Sep 17, 2010 11:59:43 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class      org.apache.tiles.web.startup.TilesListener
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.apache.tiles.web.startup.TilesListener.<init>(TilesListener.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

我花了30分钟谷歌搜索,但找不到可能的溶剂.

请帮我...

java tiles slf4j

45
推荐指数
2
解决办法
14万
查看次数

使用imagemagick的蒙太奇命令一起粘贴平铺图像,而无需调整大小

这似乎是一个相当普遍的问题,所以我会用尽可能多的关键字来考虑它!

我有一堆(好的,九个)tile jpeg,带有标准的tile文件名.每个jpeg是220x175像素:

(top row)
tile_1_0_0.jpg
tile_1_1_0.jpg
tile_1_2_0.jpg
(middle row)
tile_1_0_1.jpg
tile_1_1_1.jpg
tile_1_2_1.jpg
(bottom row)
tile_1_0_2.jpg
tile_1_1_2.jpg
tile_1_2_2.jpg
Run Code Online (Sandbox Code Playgroud)

我如何使用imagemagick/montage"粘合"或将它们连接在一起以形成单个连贯的图像?我根本不想调整它们的大小,所以我猜最终的图像应该是660x525.

这将是蒙太奇,没有框架,阴影,边界等 - 只有九个原始图像,粘在一起制作一个jpeg.

我知道它应该是这些方面的东西,但我正在努力获得订单和正确的尺寸:

montage +frame +shadow +label -tile 3x3 -geometry <options> *.jpg joined.jpg
Run Code Online (Sandbox Code Playgroud)

tiles image imagemagick

44
推荐指数
2
解决办法
3万
查看次数

如何在多个servlet转发后从servlet/jsp获取原始请求url

我正在使用struts/tiles工作巡航预订应用程序,它使用多个内部servlet/jsp转发到达正确的jsp进行显示.但是,一旦你到达用于呈现页面的最终jsp,jsp中的${pageContext.request.requestURL}调用将返回 jsp 的路径.

例如

  1. 原始要求: / booking/getCruiseDetails
  2. 转发到:/booking/validateCruiseDeteails.jsp
  3. 转发到:/booking/validateUser.jsp
  4. 最后转发到:/booking/showCruiseDetails.jsp

所以,当我调用/booking/showCruiseDetails.jsp时,在${pageContext.request.requestURL}/booking/showCruiseDetails.jsp中

如何从通过多个转发到达的jsp获取原始(客户端制作的)请求URL .我确实在stackoverflow上找到了以下关于此处此处的解决方案的帖子,但是他们没有解决在多次转发发生后如何查找原始请求URL的问题.

java struts servlets tiles java-ee

31
推荐指数
2
解决办法
4万
查看次数

使用Spring,在web.xml中映射到root,找不到静态资源

我要做的是将请求映射到servlet根目录(正确的术语?).我正处于将URL映射到正确视图的位置,但无法找到作为页面一部分的所有静态内容--css,javascript,images.

所以在我的web.xml中,我的servlet标签看起来像这样

<servlet-mapping>
    <servlet-name>springapp</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我的控制器看起来像这样:

@RequestMapping("/shop")
public class TheShopController extends MyBaseController {

    public static String VIEW = "Tile.Shop";

    @Override
    @RequestMapping(method = RequestMethod.GET)
    protected ModelAndView processRequest(HttpServletRequest req, HttpServletResponse resp) {
        ModelAndView mav = new ModelAndView(VIEW);
        return mav;
    }

}
Run Code Online (Sandbox Code Playgroud)

MyBaseController非常简单.它看起来像这样:

public abstract class MyBaseController extends AbstractController {

    protected Logger log = Logger.getLogger(getClass());

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse resp) 
        throws Exception {

        ModelAndView mav = processRequest(req, resp);
        return mav;
    }

    protected abstract ModelAndView processRequest(HttpServletRequest req, HttpServletResponse resp);
}
Run Code Online (Sandbox Code Playgroud)

我在视图层中使用Tiles.我的配置如下: …

model-view-controller spring tiles

29
推荐指数
2
解决办法
6万
查看次数

从一个控制器方法重定向到另一个控制器方法

我在我的应用程序中使用Spring 3和Tiles 2并且在重定向时遇到了一些麻烦.最好,我希望能够从Controller1方法调用或重定向到Controller2方法,但到目前为止都没有成功.

我试图在pageviews.properties文件中创建一个新条目.这样我就可以从Controller1返回这个名字,它会从xml文件中查找我的tile def名称.

createRejectionEmail.(parent)=tilesView
createRejectionEmail.url=createRejectionEmail.page

redirectRejectionEmail.(class)=org.springframework.web.servlet.view.RedirectView
rediectRejectionEmail.contextRelative=true
redirectRejectionEmail.url=createRejectionEmail.page
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试返回如下所示时,我的URL包含createRejectionEmail作为URL的一部分 - 而不是使用它来查找tile定义.mav.setViewName( "redirectRejectionEmail"); 回归mav;

<definition name="createRejectionEmail.page" extends="brandedLayout">
  <put-attribute name="targetFunction" value="status" />
  <put-attribute name="content" value="/WEB  INF/jsp/pages/status/createRejectionEmail.jsp" />
</definition>
Run Code Online (Sandbox Code Playgroud)

我目前的配置如下.

<bean id="resourceViewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver"
p:order="0" p:basename="config.spring.viewresolution.pageviews"/>



<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
   <list>
  <value>/WEB-INF/jsp/**/views.xml</value>
    </list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)

任何帮助和指导将不胜感激!

spring jsp tiles spring-mvc

25
推荐指数
2
解决办法
8万
查看次数

从Tiles视图(JSP)访问Spring bean

在Spring MVC中,我可以使用JstlView的exposedContextBeanNames(或exposeContextBeansAsAttributes)在JSP中访问我的bean.例如,然后,在我的JSP中我可以编写($ {properties.myProperty).但是,当相同的JSP是切片视图的一部分时,无法访问这些属性.是否可以正确配置Tiles或以其他方式访问这些属性?

我正在使用Spring MVC 3.0.2和Tiles 2.2.1.这是我的一些配置:

<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="order" value="1"/>
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean> 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="order" value="2"/>
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
    <property name="exposedContextBeanNames">
        <list><value>properties</value></list>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

编辑:我已经实施了Skaffman的解决方案.

TilesExposingBeansViewResolver.java:

package es.kcsolutions.util.spring.servlet.view;

import org.springframework.web.servlet.view.*;

public class TilesExposingBeansViewResolver extends UrlBasedViewResolver {

    private Boolean exposeContextBeansAsAttributes;
    private String[] exposedContextBeanNames;

    public void setExposeContextBeansAsAttributes(boolean exposeContextBeansAsAttributes) {
        this.exposeContextBeansAsAttributes = exposeContextBeansAsAttributes;
    }

    public void setExposedContextBeanNames(String[] exposedContextBeanNames) {
        this.exposedContextBeanNames = exposedContextBeanNames;
    }

    @Override
    protected AbstractUrlBasedView buildView(String viewName) throws …
Run Code Online (Sandbox Code Playgroud)

java spring jsp tiles spring-mvc

19
推荐指数
2
解决办法
1万
查看次数

如何在单击时选择特定的图块并在tileview android中为其上的位图充气

Tileview使用TileView库显示一个大图像

现在我想在特定的瓷砖上显示时在矩形边界显示一个圆圈.

如何点击哪个瓷砖?以及如何显示BitMmap上面的那个瓷砖?

public class LargeImageTileViewActivity extends TileViewActivity {
    TileView tileView;
    @Override
    public void onCreate( Bundle savedInstanceState ) {

        super.onCreate( savedInstanceState );

        // multiple references
        tileView = getTileView();

        // by disabling transitions, we won't see a flicker of background color when moving between tile sets
        tileView.setTransitionsEnabled( false );

        // size of original image at 100% scale
        tileView.setSize( 2835, 4289 );

        // detail levels
        tileView.addDetailLevel( 1.000f, "tiles/painting/1000/%col%_%row%.jpg");
        tileView.addDetailLevel( 0.500f, "tiles/painting/500/%col%_%row%.jpg");
        tileView.addDetailLevel( 0.250f, "tiles/painting/250/%col%_%row%.jpg");
        tileView.addDetailLevel( 0.125f, …
Run Code Online (Sandbox Code Playgroud)

android tiles

18
推荐指数
1
解决办法
497
查看次数