首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

struts怪异有关问题

2012-02-02 
struts怪异问题web.xml?xmlversion 1.0 encoding UTF-8 ?web-appdisplay-name StrutsHibernat

struts怪异问题
web.xml
<?xml   version= "1.0 "   encoding= "UTF-8 "?>
<web-app>

<display-name> Struts   Hibernate   Spring </display-name>

<welcome-file-list>
<welcome-file> index.jsp </welcome-file>
</welcome-file-list>

<servlet>
<servlet-name> action </servlet-name>
<servlet-class> org.apache.struts.action.ActionServlet </servlet-class>
<init-param>
<param-name> config </param-name>
<param-value> /WEB-INF/struts-config.xml </param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name> action </servlet-name>
<url-pattern> *.do </url-pattern>
</servlet-mapping>

<taglib>      
<taglib-uri> /WEB-INF/struts-bean.tld </taglib-uri>      
<taglib-location> /WEB-INF/struts-bean.tld </taglib-location>      
</taglib>

<taglib>
<taglib-uri> /WEB-INF/struts-html.tld </taglib-uri>
<taglib-location> /WEB-INF/struts-html.tld </taglib-location>
</taglib>

<taglib>
<taglib-uri> /WEB-INF/struts-logic.tld </taglib-uri>
<taglib-location> /WEB-INF/struts-logic.tld </taglib-location>
</taglib>

<taglib>
<taglib-uri> /WEB-INF/struts-template.tld </taglib-uri>
<taglib-location> /WEB-INF/struts-template.tld </taglib-location>
</taglib>

</web-app>

struts-config.xml
<?xml   version= "1.0 "   encoding= "UTF-8 "?>
<struts-config>

<action-mappings>

<action   path= "/HelloWorld "
type= "hello.HelloAction "
name= "HelloForm "
scope= "request "
input= "index.jsp ">
<forward   name= "SayHello "   path= "index.jsp "/>
</action>

</action-mappings>

<form-beans>
<form-bean   name= "HelloForm "   type= "hello.HelloForm "/>
</form-beans>

<message-resources   parameter= "hello.app "/>

</struts-config>

HelloAction.java
package   hello;

import   javax.servlet.http.HttpServletRequest;
import   javax.servlet.http.HttpServletResponse;

import   org.apache.struts.action.Action;
import   org.apache.struts.action.ActionForm;
import   org.apache.struts.action.ActionForward;
import   org.apache.struts.action.ActionMapping;

public   class   HelloAction   extends   Action   {

public   ActionForward   execute(ActionMapping   mapping,
ActionForm   form,
HttpServletRequest   request,
HttpServletResponse   response)   {

String   hf   =   (String)((HelloForm)form).getUserName();

request.setAttribute( "username ",   hf);

return   mapping.findForward( "SayHello ");
}
}

HelloForm.java
package   hello;

import   javax.servlet.http.HttpServletRequest;

import   org.apache.struts.action.ActionErrors;


import   org.apache.struts.action.ActionForm;
import   org.apache.struts.action.ActionMapping;
import   org.apache.struts.action.ActionMessage;

public   class   HelloForm   extends   ActionForm   {

/**
  *  
  */
private   static   final   long   serialVersionUID   =   1L;

private   String   userName   =   null;

public   String   getUserName()   {
return   userName;
}

public   void   setUserName(String   userName)   {
this.userName   =   userName;
}

public   void   reset(ActionMapping   mapping,   HttpServletRequest   request)   {
this.userName   =   null;
}

public   ActionErrors   validate(ActionMapping   mapping,   HttpServletRequest   request)   {

ActionErrors   msg     =   new   ActionErrors();

if   (userName   ==   null)   {
msg.add( "username ",   new   ActionMessage( "index.jsp.no.username.error "));
}

return   msg;

}
}
index.jsp
<%@   page   language= "java "   contentType= "text/html;   charset=windows-31j "
        pageEncoding= "windows-31j "%>
<%@   taglib   uri= "/WEB-INF/struts-html.tld "   prefix= "html "   %>
<%@   taglib   uri= "/WEB-INF/struts-bean.tld "   prefix= "bean "   %>
<%@   taglib   uri= "/WEB-INF/struts-logic.tld "   prefix= "logic "   %>

<!DOCTYPE   html   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN "   "http://www.w3.org/TR/html4/loose.dtd ">

<html:html   locale= "true ">

<head>
<title> <bean:message   key= "index.jsp.title "/> </title>
<html:base/>
</head>

<body>
<p>
<bean:message   key= "index.jsp.header "/>
</p>
<br>
<p>
<html:errors/>
</p>
<p>
<logic:present   name= "username "   scope= "request ">
<bean:message   key= "index.jsp.say.hello "/>
<bean:write   name= "username "/>
</logic:present>
</p>
<p>
<html:form   action= "/Welcome.do "   focus= "userName ">
<bean:message   key= "index.jsp.page.username "/>
<html:text   property= "userName "> </html:text> <br>
<html:submit> </html:submit>
<html:reset> </html:reset>
</html:form>
</p>
</body>

</html:html>

控制台报错
致命的:   サーブレット   jsp   のServlet.service()が例外を投げました
java.lang.NullPointerException
at   org.apache.struts.taglib.TagUtils.retrieveMessageResources(TagUtils.java:1219)
at   org.apache.struts.taglib.TagUtils.message(TagUtils.java:1082)
at   org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java:226)
at   org.apache.jsp.index_jsp._jspx_meth_bean_message_0(org.apache.jsp.index_jsp:180)


at   org.apache.jsp.index_jsp._jspx_meth_html_html_0(org.apache.jsp.index_jsp:123)
at   org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:93)
at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
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:856)
at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
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(Unknown   Source)


[解决办法]
空指针错误。哪个对象内容为null了。
[解决办法]
<message-resources parameter= "hello.app "/>
查看你的资源文件是否配置正确,然后看看页面用到的key在资源文件里是否有定义~

热点排行