Tag: sitemesh

Spring Security应用程序中Sitemesh未修饰的自定义错误页面

在带有Spring Security(3.2.0.RC2)和Sitemesh(2.4.2)的Spring MVC(3.2.4)应用程序中,web.xml文件具有以下条目: 403 /error?code=403 映射到ErrorController: @RequestMapping(“error”) public String displayErrorPage( @RequestParam(value = “code”, defaultValue = “0”) int code, Model model, final HttpServletRequest request, Principal principal) { // … return “errorPage”; } 它通过InternalResourceViewResolver显示errorPage.jsp(应用程序中没有其他视图解析器)。 安全性正常,当未经授权的用户尝试访问受保护的页面时,会显示errorPage.jsp,但该页面未进行装饰。 应用程序中的每个其他页面都没有任何问题进行修饰,并且errorPage.jsp与其他装饰没有任何问题的JSP存在于同一目录中。 此应用程序使用Servlet 3.0规范。

为什么在装饰器中调用安全认证属性`principal.displayName`会抛出exception?

是否有理由在装饰器中调用安全认证属性principal.displayName会导致问题? 我将它设置为sitemesh装饰器中的变量: 但是它会产生这个exception: java.lang.RuntimeException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Invalid property ‘principal.displayName’ o f bean class [org.springframework.security.authentication.AnonymousAuthenticationToken]: Bean property ‘principal.displayName’ is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? at com.opensymphony.sitemesh.webapp.decorator.BaseWebAppDecorator.render(BaseWebAppDecorator.java:39) at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:84) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at […]

使用JSP,taglib URI是否意味着我的网站依赖于URI解析?

我正在尝试在我的网站中实现sitemesh装饰器。 他们网站上的示例有一个完整的URI链接到他们的站点,用于装饰器文件的taglib部分: 这是否意味着我的网站依赖于能够访问该网站? 因为我想在无法访问外部世界的Intranet内部署。 谢谢

是否可以使用Sitemesh直接在JSP中定义装饰器?

我知道我应该在配置文件或我自己的ConfigurableSiteMeshFilter子类中定义装饰器。 例如: public class SitemeshFilter extends ConfigurableSiteMeshFilter { @Override protected void applyCustomConfiguration(final SiteMeshFilterBuilder builder) { builder.addDecoratorPath(“/*”, “/WEB-INF/views/layouts/default.jsp”); } } 这对我有用,但这并不完美。 我可以在JSP文件中定义直接使用的装饰器吗? Home Hello world! ${body}

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

我正在努力重写一些老化的Web应用程序。 有两个特别是非常非常相似,但今天没有共享任何代码,我的目标是解决这个问题。 这些项目正在用Maven,Spring MVC和Sitemesh重写。 模型层代码很容易使用JAR进行共享。 但我不知道在类似的应用程序之间共享通用Web层代码(JSP和控制器)的任何好方法。 这是一些背景知识。 这些应用程序是网络商店。 一个是普通商店(想想amazon.com),用户可以登录,搜索产品,添加到购物车和结账。 另一个基本上是相同的东西,只有它是一个打击的网站。 产品浏览和购物车部分是相同的。 然而,登录和结帐完全不同。 我过于简单了,但它足以说明问题。 产品浏览和购物车部分中的很大一部分Web层代码应该能够在两者之间共享。 我认为根据环境变量或来自不同数据库的设置,只能将相同的WAR文件作为“模式”运行。 其中一个区别是完全不同的Spring Security配置。 最好将其他站点的登录和结帐控制器从组件扫描中移除,这样任何人都不能通过URL操作以某种方式跨越错误的控制器。 我最初开始使用Maven Profiles并过滤以在同一个WAR项目中保留两个不同的配置集(web.xml,spring configs等)。 根据选择的Maven配置文件,生成的WAR使用不同的配置集(为清晰起见,使用不同的名称)构建。 这违反了Maven原则,即一个pom产生一个工件。 有一个更好的方法吗? Maven WAR Overlays怎么样? 我看到人们谈论使用叠加来共享CSS,JS,图像甚至一些常见的JSP等公共资源。 但我没有看到有人提到像控制器这样的方式共享类。 我可以将Controller类推送到JAR,但从逻辑上看,它们似乎应该保留各自的JSP。 并且JSP也不能被推送到JAR(对吧?)。 我还想过让它成为一个包含多个WAR文件的EAR – 一个用于常见购物体验的WAR,另一个用于相应登录和结帐的WAR。 我相信会话可以在同一个EAR中的两个WAR之间共享,但我不确定它是否与Spring的会话范围bean相配。 我听说他们并没有真正存储在会话中。 我还必须弄清楚如何处理用于页眉/页脚的Sitemesh装饰器。 需要将相同的Sitemesh配置及其资源复制到两个WAR中,对吗? 所以最后,购物WAR工件在每种情况下仍然会有所不同。 我不得不相信其他人之前已经处理过这个问题。 我想错了吗? 这种事情有共同的解决方案吗?

Servlet页面修饰:人们是否使用Tiles,Sitemesh或其他东西?

我已经使用了Tiles和Sitemesh多年,虽然我个人更喜欢Sitemesh风格的页面装饰,但我通常没有在互联网上看到很多关于Sitemesh或Tiles的提及。 人们是否积极使用Tiles和/或Sitemesh,还是有其他图书馆以这种身份接管?

sitemesh和spring MVC装饰模式问题

我有弹簧工作的sitemesh,这是配置:decorator.xml /exclude.jsp /exclude/* /* 这是我的web.xml contextConfigLocation /WEB-INF/config/web-application-config.xml springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /* sitemesh com.opensymphony.sitemesh.webapp.SiteMeshFilter sitemesh /* REQUEST FORWARD ERROR org.springframework.web.context.ContextLoaderListener Resources Servlet org.springframework.js.resource.ResourceServlet 0 Resources Servlet /resources/* Spring MVC Dispatcher Servlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation 1 Spring MVC Dispatcher Servlet /spring/* index.html 这项工作,但是当我在decorator.xml中更改类似的模式时 /spring/cliente/index 它不起作用,我尝试了很多组合而没有。 然后我像这样在web.xml中更改spring servlet的映射 Spring MVC Dispatcher Servlet * .htm 并定义一个这样的新模式 : /cliente/index.htm 它有效,所以有没有办法使这个与弹簧servlet的映射一起使用? Spring […]

sitemesh装饰器中的Spring安全标签

我想在site-mesh的装饰器文件中使用spring安全标记库的一些标记。 但是这些标签内的内容从未显示过。 谁能告诉我为什么会这样? 码: <form id="login_form" method="post" action="”> profile messages 由于某种原因,两个块都没有显示。