2013-04-09 4 views
0

Я работаю с Spring MVC3.2 и у меня есть регистрационная форма (http://my-server.com:8080/tracks/apks). Пользователи отправляют его на сервер, и сервер вернет сообщение об ошибке, когда проверка не удалась. Но я получил сообщение об ошибке с сервера, URL-адрес отличался от того, что я хотел. Вот мой код:Как исправить мой url в весеннем каркасе

Web.xml 
<servlet-mapping> 
    <servlet-name>tracks</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 


applicationContext.xml 
<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix"> 
     <value>/WEB-INF/pages/</value> 
    </property> 
    <property name="suffix"> 
     <value>.jsp</value> 
    </property> 
</bean> 

@Controller 
@RequestMapping("/apks") 
public class ApkController { 

@RequestMapping() 
public ModelAndView index() { 
    Map<String, Object> modelMap = new HashMap<String, Object>(); 
    modelMap.put("menus", AdminService.getMenus("apks")); 
    return new ModelAndView("apks", "model", modelMap); 
} 

@RequestMapping(value = "/insert", method = RequestMethod.POST) 
public ModelAndView uploadApk(ApkInfo apkInfo, BindingResult bindingResult) { 

    Map<String, Object> modelMap = new HashMap<String, Object>(); 
    modelMap.put("menus", AdminService.getMenus("apks")); 

    if (!fileExists(apk.getFileName())){ 

    modelMap.put("message", message); 
    } 

    //Do something 

    return new ModelAndView("apks", "model", modelMap); 
} 

После вызова uploadApk, я ожидал http://my-server.com:8080/tracks/apks но Возвращенный URL был http://my-server.com:8080/tracks/apks/insert.

Что мне делать, чтобы исправить это?

Заранее спасибо.

ответ

0

Что означает «возвращаемый URL»?

Вы должны получить доступ к 'http://my-server.com:8080/apks/insert' вызов метода '' uploadApk причина у вас есть

@RequestMapping("/apks") 

на контроллере и

@RequestMapping(value = "/insert", method = RequestMethod.POST) 

на вашем методе 'uploadApk'.

Как вы назвали метод 'uploadApk'?

Я думаю, что вы должны объяснить об этом больше, чтобы получить соответствующий ответ.


Поскольку URL-схема сервлет-отображение в вашем web.xml является '/', вы должны удалить '/ дорожки' в вашей URL.

«Следы» - это просто имя сервлета, а не путь сервлетов.

Итак, если вы получаете доступ к/tracks/apks/insert, вы получите ошибку 404. Доступ к/apks/insert вместо.


Я предполагаю, что вы можете перенаправлении после вызова метода «» uploadApk потому что вы прикреплены «переадресовать» метки на ваш вопрос и используется слово «возвращается URL». (Правильно?)

Если моя догадка правильная и вы хотите перенаправить браузер, то см. SpringMVC 3.2 Redirect View docs.

Используйте приведенные ниже коды для перенаправления.

return new RedirectView("url-you-want"); 

или

return "redirect:url-you-want" 
0

Пара наблюдения.

  1. В вашем web.xml вы указываете context-paran, треки сервлетов и слушателя?
  2. Контекст: компонентное сканирование включено в вашем файле конфигурации весны?
  3. Использовать requestMapping на уровне метода для сопоставления запроса конкретному методу.
+0

Да, я сделал все, о чем вы упомянули. Другие запросы работают нормально, используя requestmapping. – sunghun

Смежные вопросы