本人刚开始学习java,最近学习struts 2 标签部分。理论上感觉很简单,可一实践就出错。最简单的也调试不通,大家帮我看看问题出在哪了吧!<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head> <body>
<s:form action="register" method="post">
<s:textfield name="username" label="name" />
</s:form>
</html>运行结果是:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 118: </head>
9:
10: <body>
11: <s:form action="register" method="post">
12: <s:textfield name="username" label="name" />
13: </s:form>
14: </html>
这是什么问题呢?
<%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head> <body>
<s:form action="register" method="post">
<s:textfield name="username" label="name" />
</s:form>
</html>运行结果是:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 118: </head>
9:
10: <body>
11: <s:form action="register" method="post">
12: <s:textfield name="username" label="name" />
13: </s:form>
14: </html>
这是什么问题呢?
<s:form action="register" method="post">
错误在这一行。
你换下名字,尽量不要我系统内置的,保留名称相冲突,否则这样的错误,很难发现,也不好调试。
换一个再试试吧
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> 并且要拦截.jsp文件。试试吧
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>于是把*.action改成了/* 问题解决了。再次感谢楼上各位,让我加深和巩固了对struts的学习!
/项目名/命名空间/register.do