Как установить значение в строке, если строка содержит ключи в тимелеф - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь установить значение в строке, но проблема в той же строке, содержащей ключ ..

примечание: - String содержимое будет меняться в зависимости от выбора пользователя, но ключ не изменится.

    binder.put("ocPercent", "5");
                binder.put("ocPercentInWords", "Five");
    ${ocPercent} % (${ocPercentInWords} Percent) of the principal portion of the Receivables,

    List<ParagraphDetails> internalCredit = new ArrayList<>();

//String Content

    internalCredit.add("${ocPercent} % (${ocPercentInWords} Percent) of the principal portion of the Receivables ..etc")

binder.put("internalCredit", internalCredit);

in HTML

<div th:each="internalCreditEnhancement : ${internalCredit}">               
      <p><span th:text="${internalCreditEnhancement.Contents}"></span></p>
</div>

выходной сигнал

${ocPercent} % (${ocPercentInWords} Percent) of the principal portion of the Receivables ..etc

, но ожидаемый результат должен быть

5 % (Five Percent) of the principal portion of the Receivables ..etc

как этого добитьсяконцепция

Ответы [ 2 ]

1 голос
/ 21 октября 2019

На вашем контроллере добавьте две переменные на карту вашей модели (возможно, вы уже это делаете)

modelMap.addAttribute("ocPercent", "5");
modelMap.addAttribute("ocPercentInWords", "Five");

Затем в своем html используйте следующий атрибут th: text

<p><span th:text="${ocPercent} + ' % (' + ${ocPercentInWords} + ' Percent) of the principal portion of the Receivables ..etc'"></span></p>

Таким образом, вам не нужно создавать всю строку на вашем контроллере, но вы можете только передать переменные и получить полное сообщение (без значений) на html-странице.

Ниже приведен пример использования ArrayList изКредитные значения, включая проценты в числах и словах.

Кредитный класс:

public class Credit {

    private int ocPercent;
    private String ocPercentInWords;

    public int getOcPercent() {
        return ocPercent;
    }

    public void setOcPercent(int ocPercent) {
        this.ocPercent = ocPercent;
    }

    public String getOcPercentInWords() {
        return ocPercentInWords;
    }

    public void setOcPercentInWords(String ocPercentInWords) {
        this.ocPercentInWords = ocPercentInWords;
    }
}

Контроллер:

//Creating 2 Credits 5%, 10% for testing
List<Credit> internalCredit = new ArrayList<>();
Credit a = new Credit();
a.setOcPercent(5);
a.setOcPercentInWords("Five");
Credit b = new Credit();
b.setOcPercent(10);
b.setOcPercentInWords("Ten");
internalCredit.add(a);
internalCredit.add(b);

modelMap.addAttribute("internalCredit", internalCredit);

Ваша модельMap теперь включает в себя список, содержащий кредитные объекты, содержащие оба значенияв цифрах и словах.

<div th:each="internalCreditEnhancement : ${internalCredit}">
  <p><span th:text="${internalCreditEnhancement.ocPercent} + ' % (' + ${internalCreditEnhancement.ocPercentInWords} + ' Percent) of the principal portion of the Receivables ..etc'"></span></p>
</div>
1 голос
/ 21 октября 2019

Заменить ${ocPercent} % (${ocPercentInWords} Percent) на ocPercent +"%" ("+ocPercentInWords+" Percent)"

Вы должны использовать конкатенацию строк, а не язык выражений.

В html-коде должны использоваться выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...