我有两个页面:home.jsp和stylechoosertable.jsp。jsp有一个指向stylechoosertable.jsp的简单链接。两者都在src-main-webapp-views中。启动应用程序运行良好,加载home.jsp也很好。然而,当我点击链接时,它会转到一个404未找到的页面。
下面是HomeController.java
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
logger.info("Welcome home! The client locale is {}.");
return "home";
}
}
@Controller
public class CSSTableController {
private static final Logger logger = LoggerFactory.getLogger(CSSTableController.class);
private final CSSService cssService;
@Autowired
public CSSTableController(CSSService cssService) {
this.cssService = cssService;
}
@RequestMapping(value = "/stylechoosertable.jsp", method = RequestMethod.GET)
public List<StyleChooser> get() {
return cssService.getAllStyleChoosers();
}
}
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
>
仅本地:8080/MySpringMVC/打开主页。local:8080/myspringmvc/home.jsp会出现相同的404错误,但我不知道。
在开始时,我可以看到它正确地执行请求/处理程序映射:
信息:org.springframework.web.servlet.mvc.method.annotation.requestMappingHandlerMapping-将“{[/stylechoosertable.jsp],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}”映射到公共java.util.list com.css.genapp.csstableController.GET()
我不明白为什么它没有“击中”我的stylechoosertable.jsp。有什么想法吗?
大多数Servlet容器注册Servlet
实现来处理JSP。他们看起来就像
<servlet>
<servlet-name>jspServlet</servlet-name>
<servlet-class>com.example.JspServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jspServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
*.jsp
称为扩展映射。Servlet容器知道这个Servlet
和您注册的Servlet。容器对@controller
bean一无所知。只与Spring有关。
当Servlet容器接收到请求时,它将按照Servlet规范中指定的顺序,根据其映射匹配特定的Servlet
。基本上,它首先检查完全匹配,然后尝试进行路径匹配(模式如/something/*
),然后进行扩展映射,最后,如果没有找到匹配,则使用默认servlet,即映射到/
的servlet。在本例中,您的DispatcherServlet
(运行Spring MVC堆栈)被映射到/
,因此它是默认servlet。
local:8080/myspringmvc/home.jsp
路径满足*.jsp
的扩展映射,因此容器使用JSPServlet
来处理请求。这个JSPServlet
试图查找适当的资源,但没有。请记住,WEB-INF
内部的JSP是不可公开/外部访问的。因此,它返回404。
当您将请求发送到
local:8080/myspringmvc/
之所以选择默认servlet,是因为没有其他任何东西可以匹配该路径。DispatcherServlet
查找它的处理程序并找到
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
logger.info("Welcome home! The client locale is {}.");
return "home";
}
从不涉及DispatcherServlet
,因此它没有机会记录任何内容。
我已使用此(react router 2.0)在路由器上设置了browserHistory: 然后,我尝试使用react router中的browserHistory以编程方式从视图(ala: 这将URL更改为 /map但不会呈现该路由中的组件。我做错了什么?
问题内容: 如何从一页导航到另一页。假设我有一个登录页面,在输入用户名和密码字段并单击提交按钮后,它需要验证,如果用户名和密码都正确,则需要进入主页。主页内容需要显示。我在这里发布代码。在浏览器中,URL不断变化,但内容没有变化。 index.html home.html test.js 问题答案: 正如@dfsq所说,您需要一个ng-view来放置新视图。当然,如果将ng- view添加到索引中
导航规则是JSF Framework提供的那些规则,用于描述单击按钮或链接时要显示的视图。 可以在名为faces-config.xml的JSF配置文件中定义导航规则。 它们可以在托管bean中定义。 导航规则可以包含可以显示结果视图的条件。 JSF 2.0也提供隐式导航,其中不需要定义导航规则。 隐式导航 JSF 2.0提供了名为implicit navigation auto view page
Iam正在使用ionic应用程序编辑配置文件和查看配置文件。编辑编辑页面的详细信息后,它将导航到查看配置文件页面。 我希望在导航后刷新查看配置文件页面。 这是editprofile.ts代码: 首先我用下面的导航 通过谷歌搜索,我添加了这个来在导航后刷新视图配置文件 现在发生的是,首先它被重定向到查看个人资料页面,并且没有刷新,它直接重定向到主页,主页被刷新。 请帮助我如何在从“编辑配置文件”页面
我正在使用JSF和Primefaces开发一个web应用程序。我想显示以下菜单,并根据选择选项转到一页或另一页。 XHTML代码: 托管bean代码: 如果用户从列表中选择宝马选项,如何导航到pageBMW. xhtml,或者如果用户从列表中选择梅赛德斯选项,如何导航到pagemercedes.xhtml?
我正在尝试以编程方式更改页面。这第一行代码正在工作,但我不需要它延迟,所以我尝试了第二行,但它不起作用。我错过了什么? 工作(但我不想延迟): 不工作: 我在<代码>中调用它