每个字符串的Thymeleaf替换子字符串

时间:2016-04-12 13:00:32

标签: string spring thymeleaf

我有一个对象列表。每个对象都有一个具有特定前缀的名称。现在我想用空字符串替换这个前缀。

我的代码:

控制器:

@Secured("ROLE_ADMIN")
@RequestMapping(value = "/admin/userManagement", method = RequestMethod.GET)
public String showUserManagement(Model model) {
    model.addAttribute("userList", userDelegate.getAllUserForClient(getCompanyAuthority().getName()));
    model.addAttribute("companyName", getCompanyAuthority().getName());
    return "admin/user_management";
}

我的html代码段:

<table class="table table-striped table-hover">
    <thead>
        <tr>
            <th>ID</th>
            <th>E-mail</th>
            <th th:text="#{adminArea.userManagementReport}">Reports</th>
            <th th:text="#{adminArea.userManagementRole}"></th>
            <th>Edit</th>
        </tr>
    </thead>
    <tbody>
        <tr th:each="user,itrStat : ${userList}">
            <td th:text="${itrStat.index}"></td>
            <td th:text="${user.username}"></td>
            <td>
            <small th:each="report : ${user.reports}"
                th:utext="${#strings.replace(report.name,companyName +                                      '_','')} : ${companyName}"></small>
            <br th:each="report : ${user.reports}"></br></td>
        </tr>
    </tbody>
</table>

重要的部分是:

<small th:each="report : ${user.rep orts}"
                    th:utext="${#strings.replace(report.name,companyName + '_','')} : ${companyName}"></small>

对于每个报告名称,我想删除companyName前缀。所以TEST_filename.txt - &gt; FILENAME.TXT

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

使用substringAfter

<small th:each="report : ${user.reports}" th:utext="${#strings.substringAfter(report.name,'_'}></small>

当然,在执行此操作之前,您需要确保您的公司名称也不包含下划线分隔符。

答案 1 :(得分:0)

不要那样做,试试这个,     根据&#34; _&#34;分割字符串并通过提及指数来接受第二个词。