1

localhost:8080 / homeにアクセスすると、次のようになります。

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/home] in DispatcherServlet with name 'appServlet'

localhost:8080 /またはlocalhost:8080 / indexにアクセスすると、すべて問題ないように見えます。

なぜ1つのパスが機能し、別のパスが機能しないのですか?

そして、それは私を混乱させます:localhost:8080/homepage.html-私のホームビューを返します。


だから私のプロジェクトはここにあります:https ://github.com/IRus/jMusic

私のweb.xml

<!-- Base servlet handles all requests to the application. -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

servlet-context.xml-タイルを使用しています

<annotation-driven/>

<resources mapping="/resources/**" location="/resources/"/>

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/"/>
    <beans:property name="suffix" value=".jsp"/>
    <beans:property name="order" value="1" />
</beans:bean>

<beans:import resource="controllers.xml"/>
<beans:import resource="tiles.xml" />
<beans:import resource="i18n.xml"/>
<beans:import resource="themes.xml"/>

tiles.xml

<bean id="tilesviewResolver" class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
        <property name="order" value="0"/>
</bean>

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/views/tiles-definitions.xml</value>
        </list>
    </property>
</bean>

ErrorController

@Controller
public class ErrorController {

    @RequestMapping("/403")
    public String error403() {
        return "403";
    }

    @RequestMapping("/404")
    public String error404() {
        return "404";
    }

}

UserController

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/")
    public String index() {
        return "redirect:/index";
    }

    @RequestMapping("/home")
    public String home() {
        return "home";
    }

    @RequestMapping("/login")
    public String login() {
        return "login";
    }

    @RequestMapping("/index")
    public String listUsers(Map<String, Object> map) {

        map.put("user", new User());
        map.put("userList", userService.listUser());

        return "user";
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addUser(@ModelAttribute("user") User user,
                             BindingResult result) {

        userService.addUser(user);

        return "redirect:/index";
    }

    @RequestMapping("/delete/{idUser}")
    public String deleteUser(@PathVariable("idUser") Long idUser) {

        userService.removeUser(idUser);

        return "redirect:/index";
    }
}

ここにログhttps ://gist.github.com/IRus/2ac97c66070001247011

ログに興味のある瞬間:

URLパス[ /homepage.html ]をハンドラー'userController'にマップしました。追加し、コントローラーの@RequestMappingを削除しましたが、まだ生きています。

私はIdea12.0.4で働いています

4

1 に答える 1

2

問題はキャッシュ/IDEにありました。

プロジェクトをデプロイしてもクラスファイルが更新されません。

初めてこんなトラブルになります。IDEを再起動し、tomcat webappsフォルダーをクリーンアップします(ここからプロジェクトファイルを削除します)。

これで、すべてが期待どおりに機能します。

于 2013-03-17T11:53:58.213 に答える