나는 Spring MVC textbox example에서 튜토리얼을 시도한다. 잘 작동하지만, 나는 링크의 이름을 다루는 것에 대해 전혀 모른다.Spring MVC를 사용하여 JSP에서 HTML로 링크 설정하기
유일하게 작동하는 것은 http://localhost:8080/SpringMVC/textbox.html
이며, textbox.html
부분을 다른 것으로 변경하는 방법을 모르겠습니다.
의견과 모든 정보에 따르면 나는 그것이 제어 클래스에 따라 명명 된 것을 깨달았습니다.
는 관련 코드 :TextBoxController.java -> textbox.html 여기
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
MVC - 디스패처-servlet.xml에
의 web.xml
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
<bean class="nch.customer.controller.TextBoxController">
<property name="formView" value="CustomerForm" />
<property name="successView" value="CustomerSuccess" />
// Anything to put here?
<property name="validator">
<bean class="nch.customer.validator.CustomerValidator" />
</property>
</bean>
TextBoxController.java
public class TextBoxController extends SimpleFormController {
public TextBoxController() {
setCommandClass(Customer.class);
setCommandName("customerForm");
// Or anything to put here?
}
@Override
protected ModelAndView onSubmit (
HttpServletRequest request, HttpServletResponse response,
Object command, BindException errors) throws Exception {
Customer customer = (Customer) command;
return new ModelAndView("CustomerSuccess","customer",customer);
}
내 질문입니다. 어떻게 클래스의 이름을 변경하지 않고 링크 이름을 변경하려면? 예 :
TextBoxController.java -> txb.html
URL 매핑 어딘가에있을 것이다, 주석 또는 XML에서 중. 그걸 찾아서 보여 주실 수 있습니까? – Stewart
@Steward 연결된 예제에서 XML을 사용하고 주석을 사용하지 않았습니다. 패키지 이름을 제외하고 변경 사항은 없습니다. –
Rocherlee의 대답을 참조하십시오. 그는 'SimpleUrlHandlerMapping'을 사용하여 작업을 완료했습니다. 그게 내가 말하는거야. 당신은 어딘가에 매핑을 지정해야합니다. 그렇지 않으면 기본 동작을 얻게됩니다. – Stewart