2016-04-12 3 views
2

Ich habe eine Liste von Objekten. Jedes Objekt hat einen Namen mit einem spezifischen Präfix. Jetzt möchte ich dieses Präfix durch einen leeren String ersetzen.Thymoleaf für jede Zeichenfolge ersetzen einen Teilstring

Mein Code:

Controller:

@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"; 
} 

Mein HTML-Schnipsel:

<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> 

Der wichtigste Teil ist:

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

Für jeden Bericht Name, ich will um die Firma zu entfernenN Präfix. Also TEST_Dateiname.txt -> Dateiname.txt

Kann mir jemand helfen?

+0

Was passiert also, wenn Sie den von Ihnen bereitgestellten Code ausführen? Was ist das spezifische Problem? –

+0

Konnte nicht als Ausdruck analysieren: "$ {# strings.replace (reportName, companyName, '')}: $ {report.name}, $ {firmenname}" – DK1990

+0

Sicher, dieser Ausdruck sieht nicht richtig aus - wofür ist der Doppelpunkt? Versuchen Sie, einen Standardwert von companyName zu verwenden, wenn der Ersatz leer ist? –

Antwort

1

Verwendung substringAfter:

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

Natürlich, werden Sie sicherstellen möchten, dass Ihre Firmennamen enthalten nicht auch den Unterstrich-Trennzeichen, bevor dies zu tun.

0

Tun Sie das nicht, versuchen Sie dies stattdessen, , um die Zeichenfolge basierend auf "_" aufzuteilen und nehmen Sie das zweite Wort, indem Sie den Index erwähnen.