有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java Spring多模型属性

我正在创建一个web应用程序,有一个问题:是否可以在Spring中编写多个ModelAttribute

我试过这样的方法,但我总是得到0分。我也尝试了spring绑定,但又得到了一个0。谢谢

这是我的控制器

@RequestMapping(value="/assignguesttohotel",method = RequestMethod.GET)
public ModelAndView assignguesttohotel_form(HttpServletResponse response) throws IOException {
    return new ModelAndView("assignguesttohotel");
}

@RequestMapping(value="/assign",method = RequestMethod.POST)
public ModelAndView assigning(Guest guest, Hotel hotel) {
    ModelAndView m = new ModelAndView();
    System.out.println(guest.getId() + " " + hotel.getId());
    m.addObject("guestid", guest.getId());
    m.addObject("hotelid", hotel.getId());
    HotelDAO dao = new HotelDAO();
    dao.assignGuestToHotel(guest.getId(), hotel.getId());
    m.setViewName("temp");
    return m;
}

以及JSP(assignguestothotel.JSP)

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
    <title>Guest register</title>
</head>
<body>
<div align="center">
    <h1>Search Guest by name</h1>
    <form:form action="assign" method="post">
        <table>
            <tr>
                <td>Guest id:</td>
                <td>
<%--                    <spring:bind path="guestid.id">--%>
<%--                        <input name="${status.expression}" type="number" value="${status.value}">--%>
<%--                    </spring:bind>--%>
                    <input name="guestid" type="number">
                </td>
            </tr>
            <tr>
                <td>Hotel id:</td>
                <td>
<%--                    <spring:bind path="hotelid.id">--%>
<%--                        <input name="${status.expression}" type="number" value="${status.value}">--%>
<%--                    </spring:bind>--%>
                    <input name="hotelid" type="number">
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="Seach"></td>
            </tr>
        </table>
    </form:form>
</div>
</body>
</html>

共 (1) 个答案

  1. # 1 楼答案

    是的,您可以使用多个模型属性在控制器中接收多个对象,我们还可以将多个对象发送到视图页面

    <form action="" method="post">
      <div>
      <label>Leave a comment below</label>
      <textarea th:field="${rootComment.text}" rows="3"></textarea>
       </div>
    <textarea th:field="${anotherObject.text}" rows="3"></textarea>
       </div>
      </form>
    
    
    
     Controller
        @PostMapping("/receive")
        String receiveObjects(Comment rootComment, Object2 anotherObject){
         ........
         }
    

    我正在使用thymeleaf,所以我提到了“th”thymeleaf标签