Thymeleaf:对象中的对象,无法像jsp那样访问值?属性或字段 - 在 null 上找不到

Posted

技术标签:

【中文标题】Thymeleaf:对象中的对象,无法像jsp那样访问值?属性或字段 - 在 null 上找不到【英文标题】:Thymeleaf: object in object, could not access value like jsp? Property or field - cannot be found on null 【发布时间】:2016-11-02 08:46:12 【问题描述】:

我想访问以下值: user.userSettings.nativeLanguage 哪里:

User
    private UserSettings userSettings
    //gettter & setter



UserSettings
    private string nativeLanguage
    //gettter & setter

我的html

       <table>
            <tr th:each="user:$friends">
                <td><h3>Name:</h3><h3 th:text="$user.name"></h3></td>
                <td><h3>Native:</h3><h3 th:text="$user.userSettings.nativeLanguage"></h3></td>
                <td><h3>Learning: SOME</h3></td>
                <td><a href="/addAsFriend"  class="btn btn-primary btn-lg active">Add</a></td>
            </tr>
        </table>

它显示了这一行:

<h3>Native:</h3><h3 th:text="$user.userSettings"></h3>

但不是这条线不起作用:

<h3>Native:</h3><h3 th:text="$user.userSettings.nativeLanguage"></h3>

我得到了错误:

org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 0): Property or field 'nativeLanguage' cannot be found on null

【问题讨论】:

修复$user.userSettings.nativeLanguage$user.userSetting.nativeLanguage 并定义getter 方法,它似乎工作。 @YukiYoshida,我更新了我的问题。我也看到了文件。它应该工作。但是我已经尝试了几天来修复,但它仍然无法正常工作。任何想法 ??谢谢。 【参考方案1】:

我的问题解决了: 我从:

@RequestMapping("/findfriend")
public String findFreind(Map<String, List<UserAccount>> users)
    users.put("friends", userRepository.findAll());         
    return "find_friend";

到:

@RequestMapping("/findfriend")
public String findFreind(Model model)
    model.addAttribute("friends", userRepository.findAll());        
    return "find_friend";

【讨论】:

以上是关于Thymeleaf:对象中的对象,无法像jsp那样访问值?属性或字段 - 在 null 上找不到的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Thymeleaf 中的模型对象设置默认 CSS 变量

无法解析来自thymeleaf的javascript中的JSON对象

第十一节:Thymeleaf内置对象

thymeleaf 中的身份验证对象为 null 或为空

Thymeleaf 中如何判断list集合中是不是包含某个值

SpringBoot 之Thymeleaf模板