首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring和Thymeleaf:如何在迭代之后获得列表对象的值

Spring和Thymeleaf:如何在迭代之后获得列表对象的值
EN

Stack Overflow用户
提问于 2019-01-16 23:16:04
回答 1查看 3.3K关注 0票数 0

大家好,谢谢你们阅读我的文章。

我正在使用Spring和Thymeleaf编写应用程序,我有以下问题。

我正在迭代一个对象列表,并在它们下面显示一个按钮,我的目标是更新数据库,从一个特定的迭代对象获取一个属性值,但是检索到的属性是空的,它不应该是空的。

我的控制器类:

代码语言:javascript
复制
@Controller
@RequestMapping("/mostrar_usuarios")
public class MostrarUsuariosController {

    private final UsuarioService usuarioService;

    @Autowired
    public MostrarUsuariosController(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    @RequestMapping(method = RequestMethod.GET)
    public String mostrarVista(ModelMap model, HttpSession session) {
        UsuarioVO u = (UsuarioVO) session.getAttribute("usuarioActivo");
        if (u != null) {
            ArrayList<UsuarioVO> listaUsuarios = (ArrayList<UsuarioVO>) this.usuarioService.retrieveAll();
            model.addAttribute("usuarios", listaUsuarios);
            return "mostrar_usuarios";
        } else {
            return "redirect:/paginaprincipal";
        }
    }

    @RequestMapping(method = RequestMethod.POST)
    public String registrarse(@ModelAttribute("usuario") UsuarioVO usuario, ModelMap model, HttpSession session) {
        UsuarioVO u = (UsuarioVO) session.getAttribute("usuarioActivo");
        if (u != null) {
            u.getSeguidos().add(usuario); // usuario comes empty
            this.usuarioService.update(u);
            return "mostrar_usuarios";
        } else {
            return "redirect:/paginaprincipal";
        }
    }
}

以下是我的html + thymeleaf代码:

代码语言:javascript
复制
        <div class="media-container-row" th:each="usuario: ${usuarios}">
            <div class="title col-12 col-md-8">
                <br></br>
                <hr />
                <br></br>
                <h5 class="align-center pb-3 mbr-fonts-style display-2"
                    th:text="${usuario.nombre + ' @' + usuario.arroba}"
                    id="tamanioTexto"></h5>
                <form class="align-center pb-3 mbr-fonts-style display-2" action="#" method="POST" th:object="${usuario}" id="tamanioPie">
                <button id="boton" type="submit">Seguir</button>
                </form>
                <br></br>
                <hr />
                <br></br>
            </div>
        </div>

除了th:object="${usuario}" #style it as code之外,所有操作都很好,我希望得到特定的迭代对象,这取决于在控制器中单击的按钮。

EN

回答 1

Stack Overflow用户

发布于 2019-01-16 23:27:32

根据Thymeleaf官方文档: form标记中的th:object属性的值必须是变量表达式(${.}),该表达式仅指定模型属性的名称,没有属性导航

th:each="usuario:${usuario}和th:object="${usuario}",两者是相同的。

在这里,您使用它作为本地引用。尝试重命名th:每个var名称或用命令对象/模型属性名称替换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54226812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档