Java Spring MVC get / post в том же JSP - PullRequest
7 голосов
/ 29 апреля 2011

Это от моего контроллера

    <form method="post" action="/spring/krams/edit/add">
Linna nimi
<input type="text" name="name">
<input type="submit" value="Test" name="submit" />
</form>

Я хотел бы изменить файл JSP, чтобы, когда я публикую его в этом файле, он говорил ... "ГОРОД ДОБАВЛЕН".это возможно?

ЧТО О ОБНОВЛЕНИИ ГОРОДА ??

    @RequestMapping(value = "/update", method = RequestMethod.POST)
public String updated(@RequestParam("city") int city_id,
                      @RequestParam("text") String name,
                      Model model) {
    service.updateCity(name, city_id);
    return "update";
}

Здесь нет объекта?

1 Ответ

11 голосов
/ 29 апреля 2011

В методе post вы можете добавить атрибут с помощью метода addAttribute

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String added(@RequestParam("name") String name, Model model) {
    City city = new City();
    city.setCity(name);
    service.addCity(city);
    model.addAttribute("city", city);
    return "add";
}

и в JSP вы можете проверить, является ли атрибут city нулевым или нет (с тегом <c:if/>). В случае, если он не нулевой, это потому, что он был только что добавлен в модель, так что вы можете показать все, что вы хотите. ${city.city} это просто выражение JSTL, которое обращается к атрибуту city и затем вызывает метод получения, чтобы получить доступ к свойству city этого атрибута:

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

<c:if test="${city != null}">
    CITY <c:out value="${city.city}" /> ADDED
</c:if>

UPDATE

Если вам нужны разные сообщения в зависимости от операций обновления / создания, вы можете сделать это: (В примере обновление выполняется, когда параметр id не равен NULL, поскольку идентификатор является идентификатором города для обновления)

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String added(@RequestParam(value="id", required=false) String id, @RequestParam("name") String name, Model model) {
    City city;
    String operation;
    if(id== null){
        //create operation
        city = new City();
        operation = "CREATE";

    }else{
        //update operation
        city = service.findCity(id);
        operation = "UPDATE";
    }
    city.setCity(name);        
    service.saveCity(city); //save or update
    model.addAttribute("city", city);
    model.addAttribute("operation", operation); //add operation param
    return "add";
}

и в JSP вы можете сделать:

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

<c:if test="${operation == 'CREATE'}">
    <c:if test="${city != null}">
          CITY <c:out value="${city.city}" /> ADDED
    </c:if>
    <c:if test="${operation == 'UPDATE'}">
          CITY <c:out value="${city.city}" /> UPDATED
    </c:if>
</c:if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...