java - 如果等于 mustache 的条件

标签 java spring-mvc mustache

在我的应用程序中,我有一个包含用户的数据库。用户有名为“性别”的字符串字段。我想制作一个表单,用户可以在其中编辑他的个人资料。它应该填充现有数据。

我在java代码中有这样的post方法:

@GetMapping("/edit/profile")
    public ModelAndView editProfile(Map<String, Object> model){
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();

        User user = userRepository.findByUsername(auth.getName());

        model.put("name", user.getName());
        model.put("last_name", user.getLastName());
        model.put("company", user.getCompany());
        model.put("address", user.getAddress());
        model.put("gender", user.getGender());
        model.put("birth_date", user.getBirthDate());

        return new ModelAndView("edit_profile", model);
    }

这是我的 mustache edit_profile 模板:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>To do list profile editing</title>
</head>
<body>
<p>Profile editing</p>

<form action="/api/users/update" method="post">
    <div><label> Name : <input type="text" name="name" value="{{name}}" /> </label></div>
    <div><label> Last Name : <input type="text" name="lastName" value="{{last_name}}" /> </label></div>
    <div><label> Gender : <br>
        {{#gender}}
            {{#"male"}}
                <input type="radio" name="gender" value="male" checked> Male<br>
                <input type="radio" name="gender" value="female"> Female
            {{/"male"}}
            {{#"female"}}
                <input type="radio" name="gender" value="male"> Male<br>
                <input type="radio" name="gender" value="female" checked> Female
            {{/"female"}}
        {{/gender}}
        {{^gender}}
            <input type="radio" name="gender" value="male"> Male<br>
            <input type="radio" name="gender" value="female"> Female
        {{/gender}}
    </label></div>
    <div><label> Company : <input type="text" name="company" value="{{company}}" /> </label></div>
    <div><label> Birth Date : <input type="date" name="birthDate" value="{{birth_date}}" /> </label></div>
    <div><label> Address : <input type="text" name="address" value="{{address}}" /> </label></div>
    <input type="hidden" name="_csrf" value="{{_csrf.token}}" />
    <div><input type="submit" value="Submit"/></div>
</form>
</body>
</html>

我想实现逻辑:

if(gender)
   if(gender.equals("male"))
      male radio button checked
   if(gender.equals("female"))
      female radio button checked
else
   no radio buttons checked

现在它无法正常工作,请告诉我如何使 if equals 条件在 mustache 中?

最佳答案

好吧,我猜这是在模型中使用 boolean 值的最佳方法。

java:

            if(!user.getGender().isEmpty()) {
                if(user.getGender().equals("male"))
                    model.put("gender", false);
                else if(user.getGender().equals("female"))
                    model.put("gender", true);
            }

mustache :

        {{#gender}}
            <input type="radio" name="gender" value="male" > Male<br>
            <input type="radio" name="gender" value="female" checked> Female
        {{/gender}}
        {{^gender}}
            <input type="radio" name="gender" value="male" checked> Male<br>
            <input type="radio" name="gender" value="female"> Female
        {{/gender}}

关于java - 如果等于 mustache 的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57089651/

相关文章:

javascript - Mustache.js 模板引擎内的表示逻辑

javascript - html5 mustache获取文章索引并比较值

java - 无法找到或加载主类BasicApp.Application

java - 根据分数对学生进行分组

java - Firebase (Android) : image not being displayed on my listView, 一旦我第一次将它上传到存储

java - Spring 2.0 和 2.3 版本的区别

javascript - 如何使用 mustache js 模板引擎访问嵌套对象

java - 有没有办法在 iphone 上阅读编程语言?

java - 无法在 Spring Autowiring 字段。为什么?

java - 停止 Spring MVC 获取 LazyLoad 数据