Ваш вопрос не ясен, но path=
предназначен для установки свойство к модели класса, где ваша форма получить связанной с. Если вы не сделаете какие-либо обязательные действия из этой формы в классе модели, вместо того, чтобы вы просто хотите передать строку, то не используйте @ModelAttribute но @RequestParam
вместо этого,
@RequestMapping(value="/url", method = RequestMethod.POST)
public ModelAndView takeTheString(@RequestParam("inputtext") String inputtext) {
String temp_input =inputtext;
// By "sout" you mean "System.out.println()" right?
System.out.println(temp_input);
}
или с просьбой объект
@RequestMapping(value="/url", method = RequestMethod.POST)
public ModelAndView takeTheString(HttpServletRequest request, HttpServletResponse response) {
String temp_input =request.getParameter("inputtext");
System.out.println(temp_input);
}
And The @ModelAttribute
предполагается аннотированный к связанной модели, как:
@ModelAttribute("userForm") UserBean user
Это пользователь - это то, что я имел в виду под модельным классом.
В соответствии с просьбой в соответствии с комментарием:
web.xml:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
SpringMVC-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan base-package="com" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
index.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form action="output.html" method="post">
<input type="text" name="yourtext" value="">
<input type="submit" value="go">
</form>
</body>
</html>
output.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
text = ${name}
</body>
</html>
InputController.java:
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class InputController {
@RequestMapping(value = "/output", method = RequestMethod.POST)
public ModelAndView takeTheString(@RequestParam("yourtext") String name) {
System.out.println("String you've passed = "+name);
return new ModelAndView("output", "name", name);
}
}
Здравствуйте и спасибо за ваш ответ , Я думаю, что вы получили мой вопрос правильно :) Я уже думал об использовании '@ RequestParam', но я не понимаю, что делать в JSP.Насколько я понимаю, '@ RequestParam' правильно получает параметры из URL? Итак, как передать содержимое моего поля ввода в контроллер? (И sout = System.out.println() yes :)) – Heady
Если нет активности привязки (что вы подразумеваете под вспомогательным классом), то не используйте * * префикс перед этими тегами, просто используйте обычные теги HTML , ex: '', затем в контроллере поймайте его с помощью '@RequestParam (" myname ") String myName', затем выведите это * myName * (примечание что вывод находится в консоли сервера, Tomcat, Glassfish или там, где вы там работаете), потому что если вы используете * *, значит, '' path = "' is * обязательный *, тогда как привязка отсутствует (поскольку * путь = * должен ссылаться на атрибут класса связующего). –
Спасибо .. Ну, это очень просто: D По какой-то причине я просто не думал о том, чтобы не использовать ''. Если вы хотите, вы можете опубликовать это в качестве ответа/добавить это к своему ответу, чтобы я мог его пометить. –
Heady