小编Dav*_*der的帖子

列出Thymeleaf中所有可用的模型属性

出于调试目的,我想列出我的百万美元模板在渲染时可用的所有模型属性.

就像是:

<table>
    <tr th:each="model : ${*}">
        <td th:text="${model}"></td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

但显然这是无稽之谈,我得到了一个当之无愧的错误.(org.springframework.expression.spel.SpelParseException: EL1070E:(pos 0): Problem parsing left operand)

有没有办法输出这样的调试信息?即使是一些日志输出,我也会满意.

或者,Thymeleaf是否提供类似于Struts 2的内容struts.devMode,它在页面底部添加了一个列出所有可用属性的调试部分?

java thymeleaf

11
推荐指数
3
解决办法
1万
查看次数

生成自动装箱使用警告

我想为所有自动装箱和拆箱产生警告.

有没有人找到有效的方法?

Eclipse捕获基本的自动装箱错误:例如.Integer i = null; i++.但是在任何复杂的事情上失败,并不是我真正想要的.

我看过PMDCheckstyle,但在那里找不到任何东西.

我知道这是一个有争议的话题,但我认为这是一个危险的特征.没有办法禁用它,所以我至少想在代码审查期间检查报告.

NullPointerException在代码审查和错误中经常看到这一点:

class X {
    Integer i = null;

    public int doSomething() {
        return i + 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想阻止它走得那么远.

java eclipse autoboxing checkstyle pmd

10
推荐指数
1
解决办法
2157
查看次数

spring安全过滤器应该直接调用身份验证提

似乎有两种不同的模式:

模式#1
GenericFilterBean不认证本身.由于所使用的大多数出的现成的过滤器:UsernamePasswordAuthenticationFilter,DigestAuthenticationFilter,等.

  • 请求进入过滤器
  • 过滤器创建一个Authenticationauthenticated=false
  • 过滤器将其传递给它直接引用的特定 AuthenticationProvider(有时通过AuthenticationManager)
  • 如果一切顺利,他们会创建一个类型Authentication并传回过滤器
  • filter将其放入上下文中

    在这种模式中,原始Authentication只是一个传递给AuthenticationProvider它的POJO - 它永远不会进入上下文.
    此外,过滤器通常也会直接引用特定的内容EntryPoint- 最后调用它.
    (我认为这种模式适合预身份验证过滤器?但Spring代码中没有那种一致性).

    模式#2
    单独注册AuthenticationProviders进行身份验证.正如大多数在线示例所使用的那样,但在开箱即用的过滤器中很少见到.

  • 请求进入过滤器
  • 过滤器创建一个Authenticationauthenticated=false
  • filter将其放入上下文中.
  • 过滤器的工作完成了
  • spring security现在贯穿所有已注册的 AuthenticationProviders
  • 其中一个拿起这个Authentication并尝试验证它
  • 如果一切顺利,他们会改变Authenticationauthenticated=true

    在这种模式中,过滤器不直接调用AuthenticationProvider,或者EntryPoint.这些是在外部注册的,适用于所有过滤器.模式#2配置的典型示例:

    <sec:http use-expressions="true" entry-point-ref="myCustomEntryPoint" pattern="/**">
        <sec:custom-filter before="FILTER_SECURITY_INTERCEPTOR" ref="myCustomFilter" />
        ...
    </sec:http>
    
    <sec:authentication-manager>
        <sec:authentication-provider ref="myCustomAuthenticationProvider" />
    </sec:authentication-manager>
    
    Run Code Online (Sandbox Code Playgroud)

    问题: …

  • java spring-security

    9
    推荐指数
    1
    解决办法
    951
    查看次数

    Java信息亭应用程序的Windows Shell

    我已经在SWT中开发了一个Java应用程序,该应用程序应在作为信息亭运行的Windows系统上运行。该应用程序应该是系统中唯一运行的应用程序,并且应该在系统启动后立即打开。应该禁用任务管理器,Windows开始菜单,热键等所有功能(例如,请参见http://www.codeproject.com/Articles/7392/Lock-Windows-Desktop)。该应用程序还具有一个内置的管理员用户,该用户可以再次激活所有事情,从而有可能在系统中进行更改。这些事情已经实现。问题在于,当Windows启动时,它会持续几秒钟,直到应用程序打开为止,在此短时间内,用户会看到所有内容(直到应用程序启动,所有内容都无法禁用)。我已经搜索了互联网,唯一的解决方案似乎是替换注册表中的标准Windows Shell。现在出现了问题:

    没有人知道如何编写一个用于Windows外壳

    1. 使我能够在启动时停用所有内容
    2. 让我在桌面上为我的应用程序添加快捷方式,以便用户可以打开应用程序
    3. 让我为应用程序中的管理员用户激活停用的功能

    还是您有其他想法来实现这一目标?

    谢谢

    java windows kiosk windows-shell

    5
    推荐指数
    0
    解决办法
    2388
    查看次数

    JPA“包含其中之一”

    我正在写一个 Dao 来获取所有MessagesPerson. 但我找不到正确的 JPQL 语法。

    在我的模型中:

    • aPerson有多个Roles(我将它们作为参数传递到查询中:枚举值集)。
    • aMessage与多个Roles.

    所以我想找到与一个人相关的所有消息:

    SELECT m FROM Message m
    WHERE m.roles [contains one of] :userRoles
    
    Run Code Online (Sandbox Code Playgroud)

    将其:userRoles作为Set<Role>参数。

    缺少的 [包含其中之一] 部分的正确语法是什么?

    我看INMEMBER OF

    SELECT m FROM MESSAGE m
    WHERE m.roles IN :userRoles
    
    Run Code Online (Sandbox Code Playgroud)

    但是这两个关键字都需要一侧有一个项目。我有多个上的项目两个方面。

    更多详情:

    @Entity
    @Table(name = "message")
    public class Message {
        @Id
        private Long id;
    
        @ElementCollection
        @Enumerated(javax.persistence.EnumType.STRING)
        @JoinTable(name="message_roles",
            joinColumns={@javax.persistence.JoinColumn(name="message_id")}) …
    Run Code Online (Sandbox Code Playgroud)

    java hibernate jpa jpql

    4
    推荐指数
    1
    解决办法
    3219
    查看次数