本人刚开始学习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>
这是什么问题呢?

解决方案 »

  1.   

    根据struts2中标准规范,最好在action命名的时候不要定义特殊名字的action名。如以上就是register,
    <s:form action="register" method="post">
    错误在这一行。
    你换下名字,尽量不要我系统内置的,保留名称相冲突,否则这样的错误,很难发现,也不好调试。
    换一个再试试吧
      

  2.   

    在web.xml中加上<servlet>
    <servlet-name>JspSupportServlet</servlet-name>
    <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet> 并且要拦截.jsp文件。试试吧
      

  3.   

    在web.xml中的过滤器配置了吗?
      

  4.   

    LZ下次发帖的时候尽量详细一点!有可能是1楼说的内置“关键字”问题、也有可能是2楼说的配置问题!但是也有可能是别的问题!把你的控制台错误贴出来、页面错误贴出来、在把xml文件贴出来。反正尽量详细一点!有时候当你把所有的问题全部贴出来的时候可能在贴出来的同时、你就发现问题出来哪里了!
      

  5.   

    谢谢楼上各位,楼上说的问题我都查了,不是内置“关键字”问题,而是大部分说的配置问题。因为前面做了几个struts都行,这个就忽略配置问题了。检查了一下,
    <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的学习!
      

  6.   

    那就在register后面加action比你在web.xml里面改那个好
      

  7.   

    你要是不写后缀,struts会帮你生成的,你点击浏览器查看源文件,估计是       
    /项目名/命名空间/register.do