jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <%
    String url=request.getContextPath();
    %> 
    
    <title>My JSP 'index.jsp' starting page</title>

  </head>
  
  <body>
    <s:form action="<%=url %>/login" method="post">
    <s:textfield  name="user.username" label="username"/>
    <s:textfield  name="user.password" label="password"/>
    <s:submit value="submit"/>
    </s:form>
  </body>
</html>错误信息
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /index.jsp(15,23) attribute for %>" is not properly terminated
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:130)
at org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:241)
at org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:205)
at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:143)
at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1328)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1560)
at org.apache.jasper.compiler.Parser.parse(Parser.java:126)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:416)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    看一下index.jsp(15,23)有什么语法错误就行了
      

  2.   


     <s:form action="<%=url %>/login" method="post">
    这样写不对吗???
      

  3.   

    你不加/login 多刷新几次会报错吗??
      

  4.   

    改成String url=request.getRequestURI();试试看
      

  5.   

    刷新几次才这样是错觉,那是缓存在struts2中好像不是支持这样的写法<s:form action="<%=url %>/login" method="post">Ps:
    在struts2中
    <s:form action="login" method="post">
    在IE中的URL好像是Http://localhost:port/name/login.action我记忆不是很清楚,你可以试试!
      

  6.   

    改成String url=request.getRequestURI();试试看这样还是不行 不加/login 抱这个错误  org.apache.jasper.JasperException: /index.jsp(16,4) According to TLD or attribute directive in tag file, attribute action does not accept any expressions
      

  7.   

    这是你得jsp里面有无效的tag了,仔细看看。
      

  8.   


    String path = request.getContextPath();
    String basePath = request.getScheme()+ "://"+ request.getServerName()+ ":"+ request.getServerPort()+ path+ "/";
    调用的时候:<link rel="stylesheet" href="<%=basePath%>css/homefinancial.css" type="text/css">
      

  9.   

    用<s:form action="${url}/login" method="post"> 
      

  10.   

    改成这样试一下呢?<s:form action="<%=url + "/login" %>" method="post">,s标签可能不支持你那种写法