问题标签 [sitemesh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
466 浏览

java - Sitemesh spring:模板中无法识别消息

我们在带有 Sitemesh 2 的项目中使用 spring:message 标签。在​​装饰器中使用 spring:message 时,无法识别 -tag。我们可以在我们的 jsp 页面中使用 -tag,但在装饰器 jsp 文件中。

如果我们使用不推荐使用的解析器 FastPageParser 比没有问题,但是当使用新的 HTMLPageParser 时比它不起作用。

我们如何解决这个问题?

0 投票
1 回答
1258 浏览

spring-security - 具有弹簧安全性的 Sitemesh 未重定向到目标 url

我正在将 spring 安全性与使用 sitemesh 的 Web 项目集成。我能够带来登录页面,但经过身份验证后它不会重定向到目标 URL。

下面是我的 web 项目中的 web.xml。

下面是来自 AppSecurity 项目的 spring-security.xml。

我的 loginpage.jsp 在 webapp\WEB-INF\views 中,由 sitemesh 装饰 -

处理此问题的 LoginController.java 是 -

所以这里的问题是访问 url - http://localhost:8080/acct/app,它显示登录页面。成功验证后,它会尝试重定向到http://localhost:8080/acct/app。不知道为什么会发生这种情况,而不是像default-target-url中提到的那样发生在/index.html中。

来自 tomcat 的日志行显示 -

通过将 DispatcherServlet 映射更改为 / 而不是 /index.html 尝试了很多调试。将 sitemesh 过滤器映射更改为 /* 而不是 /index.html。如果与示例 Web 项目(没有站点网格)集成,相同的 AppSecurity 项目可以正常工作。不确定我在 sitemesh 项目中缺少什么。任何帮助在这里都会很棒。

0 投票
0 回答
337 浏览

hibernate - Sitemesh 和 OpenSessionInViewFIlter/Interceptor 有什么关系?

我现在对我的项目和配置感到非常非常沮丧,因为在网上进行了如此多的研究之后,在这里这里的 stackoverflow 中发布 我仍然遇到这个著名的延迟初始化异常的障碍。我确实实现了过滤器或拦截器。我确实将调度程序应用程序配置与其余部分分开。配置应用程序上下文和调度程序之间没有跨组件扫描。

然而仍然有这个例外。我现在真的没有选择,时钟在我头顶滴答作响。

sitemesh 和 OpenSessionInViewFilter 或 OpenSessionInViewInterceptor 有什么问题吗?

这是异常本身

我们使用 Hibernate GenericDAO。这是我们对 GenericDAO 的配置

感谢您阅读本文并提供帮助

0 投票
1 回答
5563 浏览

jsp - JSP、Sitemesh 和 Tiles 硬核——还有其他选择吗?

Tiles 和 Sitemesh 看起来很流行,但与当前来自 Ruby (ERB) 或 PHP (Open Power Template) 的很棒的东西相比,这些东西真的很旧而且看起来很糟糕。如今,模板引擎允许舒适的模板(插入变量、根据上下文自动转义、遍历 Iterables、访问 bean 属性)和布局(例如页眉、页脚以及覆盖和添加到父级中定义的某些部分),而无需任何困难的配置,并且无需需要更改您当前的堆栈(例如您的 Web 框架)。

示例 parent.html:

示例 child.html

我正在寻找更好的 Facelets,它不需要我更改整个堆栈——我不会为了使用更好的视图而将整个项目适应 JSF 或 Wicket。

模板引擎不应该需要任何额外的 servlet 或过滤器(没有基于 URL 的逻辑)。我想以编程方式使用引擎。一个可能的用例是在 Spring 3 中定义一个自定义 ViewResolver。

如果没有在配置文件中预先定义布局,那将是完美的。如果您只是在模板文件中定义父视图,则不需要这样做。

该框架可能位于 JSP 之上,但并非必须如此。优点是可以使用其他框架(例如 Spring)提供的标记库。

或者也许所有东西都已经存在于 Sitemesh/Tiles 中但需要大量配置?如果您知道任何可以实现所有上述目标的示例配置,请告诉我。

相关问题:Sitemesh 有哪些替代方案可以帮助在 Spring MVC 应用程序中布局 JSP/JSTL 页面页脚/页眉?- 我的问题也涉及模板,并且不仅限于 Spring Web MVC。

0 投票
1 回答
799 浏览

spring-mvc - Spring MVC 拦截器与 Sitemesh

在使用 Sitemesh 装饰我的视图的 Spring MVC 应用程序中,我想将 Model一个名为sec的安全属性注入到每个类型WebSecurityExpressionRoot中。

通过这种方式,我可以在我所有的视图中调用 hasAnyRole()、hasAuthority()...,以便管理员可以通过底层模板引擎(Thymeleaf BTW)获得额外的东西。

具有覆盖 postHandle(...)的自定义HandlerInterceptorAdapter似乎是 Spring MVC 实现此目的的方式,但似乎我的主 Sitemesh 装饰器有点窃取我的安全属性,因为每当我尝试在某些视图中引用它时它都是空的。

但是只有在我的一个控制器受到影响后呈现的视图,映射的视图mvc:view-controller确实具有sec属性。

我正在考虑将Filtersec写入当前HttpServletRequest以解决此问题,但我可能遗漏了一些东西。

提前致谢!

0 投票
4 回答
2542 浏览

java - 在类似 Web 应用程序之间共享 Web 层代码(控制器和 JSP)的最佳实践

我正在重写一些老化的 Web 应用程序。特别是有两个非常非常相似,但今天没有共享代码,我的目标是解决这个问题。

这些项目正在使用 Maven、Spring MVC 和 Sitemesh 进行重写。

模型层代码很容易使用 JAR 共享。但我不知道在类似应用程序之间共享通用 Web 层代码(JSP 和控制器)的任何好方法。

这里有一些背景。这些应用程序是网上商店。一个是普通商店(想想 amazon.com),用户可以登录、搜索产品、添加到购物车并结账。另一个基本上是一样的,只是它是一个punchout站点。产品浏览和购物车部分是相同的。但是,登录和结帐是完全不同的。

我过于简单化了,但这足以说明问题。产品浏览和购物车部分中有很大一部分网络层代码应该能够在两者之间共享。

我认为不可能简单地将相同的 WAR 文件作为基于环境变量的“模式”或来自不同数据库的设置运行。其中一个区别是完全不同的 Spring Security 配置。最好将其他站点的登录和结帐控制器排除在组件扫描之外,这样没有人可以通过 URL 操作以某种方式越过错误的控制器。

我最初开始使用 Maven 配置文件和过滤来在同一个 WAR 项目中保留两个不同的配置集(web.xml、spring 配置等)。根据选择的 Maven 配置文件,生成的 WAR 使用不同的配置集构建(为了清楚起见,使用不同的名称)。这违反了一个 pom 产生一个工件的 Maven 原则。

有一个更好的方法吗?Maven WAR Overlays 呢?我看到人们谈论使用覆盖来共享常见资源,如 CSS、JS、图像,甚至一些常见的 JSP。但我没有看到任何人提到以这种方式共享控制器之类的类。

我可以将 Controller 类推到 JAR 中,但从逻辑上讲,它们似乎应该保留在各自的 JSP 中。并且 JSP 也不能下推到 JAR(对吗?)。

我还考虑使它成为一个包含多个 WAR 文件的 EAR——一个 WAR 用于常见的购物体验,另一个 WAR 用于适当的登录和结帐。我相信会话可以在同一个 EAR 中的两个 WAR 之间共享,但我不确定它是否与 Spring 的会话范围 bean 配合得很好。我听说它们并没有真正存储在会话中。我还必须弄清楚如何处理用于页眉/页脚的 Sitemesh 装饰器。需要将相同的 Sitemesh 配置及其资源复制到两个 WAR 中,对吗?所以最终,购物 WAR 神器在每种情况下仍然会有所不同。

我必须相信其他人之前已经处理过这个问题。我想错了吗?这种事情有一个通用的解决方案吗?

0 投票
1 回答
461 浏览

templates - 哪些 Java 模板框架/引擎允许远程模板?

我有中等程度的 Java 编程经验和相当高级的其他语言 Web 应用程序编程经验。我目前正在学习一些 Java Web 框架(Spring MVC、Struts。)

在我工作的地方,我们有许多单独的 Java Web 应用程序,部署在不同的上下文中,并作为单独的战争。一些最古老的是 servlet,许多是 Struts 1,而新的将是 Spring 3。

大多数现有的应用程序都有不一致或没有品牌(图形/装饰),我正在研究的一件事是在我们可以在一个地方维护的多个站点上应用一致的页眉和页脚。理想情况下,它甚至不必与 Web 应用程序位于同一台服务器上。明确一点——无论我在哪里配置我的模板,我都希望能够配置http://some.other.server/template而不是 WEB-INF/template。

我想使用SiteMesh或具有相同“装饰”方法的东西,但我对其进行了研究,显然在 SiteMesh 2 中完成此操作的唯一方法是由分叉代码并对其进行自定义以允许导入远程模板的人完成. (我在 Sitemesh3 Google 组中找到了此信息。)

我刚开始设计这个解决方案,所以我想我们可以使用Velocity、Freemarker、Tiles之类的任何东西。但是,在我工作的地方,我们更新旧应用程序的速度很慢,并且在采用新技术方面很保守,所以我必须证明一个解决方案具有良好的社区支持,适用于 Struts 1 和 Spring 3 MVC,并且相当值得信赖和稳定。

0 投票
0 回答
657 浏览

jsp - Sitemesh3 属性

什么样的属性可以分配给sitemesh标签?我知道3个:

我尝试分配 div 或部分,但没有成功。你知道其他标签吗?

0 投票
3 回答
3586 浏览

java - 站点网格页面排除

我想从装饰中排除一组页面(使用 sitemesh 2 和 spring-mvc 3.1)。这是我的 decorators.xml:

然后在我的页面中,我使用带有 ajax 加载页面的 jquery-ui 选项卡,如下所述:http: //jqueryui.com/demos/tabs/#ajax。所以显然我不想再次装饰标签中的内容!除了上面列出的内容之外,我已经尝试将模式放在/WEB-INF/view/data/tabs/*上面,但这也不起作用。

0 投票
2 回答
3580 浏览

java - 具有多个装饰器文件的站点网格

我想要多个装饰器,如此处所述:https ://github.com/sitemesh/sitemesh2 。我在 decorators.xml 中提供了多个装饰器,但主装饰器被应用于我项目中的每个文件。例如,我的装饰器看起来像这样:

两者/spring/some/page.jspx/spring/other/page.jspx使用“main.jspx”模板进行渲染。

我究竟做错了什么?