我用的是struts1.1,代码没错,表单提交后,
变成空白页面
代码如下:
hello.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="/web-inf/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/web-inf/struts-html.tld" prefix="html"%>
<%@taglib uri="/web-inf/struts-logic.tld" prefix="logic"%><html:html locale="true">
<head>
<title></title>
<html:base/>
</head>
<body bgcolor="white"><P>
<h2>
<bean:message key="hello.jsp.page.heading"/></h2><p>
<html:errors/><p><logic:present name="personbean" scope="reauest">
<h2>
<bean:message key="hello.jsp.page.hello"/>
<bean:write name="personbean" property="userName"/>
!<p>
</h2>
</logic:present><html:form action="HelloWorld.do" focus="userName"><html:text property="userName" size="16" maxlength="16"/><br>
<html:submit property ="submit" value="Submit"/>
<html:reset/>
</html:form><br>
</body>
</html:html>HelloAction.java
package hello;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;public final class HelloAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletRequest response) throws Exception
{
ActionMessages errors = new ActionMessages();
String userName=(String)((HelloForm)form).getUserName();
String badUserName = "Monster";
if(userName.equalsIgnoreCase(badUserName))
{
errors.add("username",new ActionMessage("hello.dont.talk.to.monster",badUserName));
//saveErrors(request,errors);
//saveErrors(request,(ActionMessages)(errors)) ;
return (new ActionForward(mapping.getInput()));
}
//PersonBean pb = new PersonBean();
//pb.setUserName(userName);
//pb.saveToPersistentStore(); //request.setAttribute(Constants.PERSON_KEY,pb);
request.removeAttribute(mapping.getAttribute());
return(mapping.findForward("SayHello"));
}}
这个 saveError(有问题)actionForm.java
package hello;import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;public final class HelloForm extends ActionForm
{
private String userName = null;
public String getUserName (){
return (this.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 errors = new ActionErrors();
if((userName==null)||(userName.length()<1))
errors.add("username",new ActionMessage("hello.no.username.error"));
return errors;
}
}
变成空白页面
代码如下:
hello.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="/web-inf/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/web-inf/struts-html.tld" prefix="html"%>
<%@taglib uri="/web-inf/struts-logic.tld" prefix="logic"%><html:html locale="true">
<head>
<title></title>
<html:base/>
</head>
<body bgcolor="white"><P>
<h2>
<bean:message key="hello.jsp.page.heading"/></h2><p>
<html:errors/><p><logic:present name="personbean" scope="reauest">
<h2>
<bean:message key="hello.jsp.page.hello"/>
<bean:write name="personbean" property="userName"/>
!<p>
</h2>
</logic:present><html:form action="HelloWorld.do" focus="userName"><html:text property="userName" size="16" maxlength="16"/><br>
<html:submit property ="submit" value="Submit"/>
<html:reset/>
</html:form><br>
</body>
</html:html>HelloAction.java
package hello;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;public final class HelloAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletRequest response) throws Exception
{
ActionMessages errors = new ActionMessages();
String userName=(String)((HelloForm)form).getUserName();
String badUserName = "Monster";
if(userName.equalsIgnoreCase(badUserName))
{
errors.add("username",new ActionMessage("hello.dont.talk.to.monster",badUserName));
//saveErrors(request,errors);
//saveErrors(request,(ActionMessages)(errors)) ;
return (new ActionForward(mapping.getInput()));
}
//PersonBean pb = new PersonBean();
//pb.setUserName(userName);
//pb.saveToPersistentStore(); //request.setAttribute(Constants.PERSON_KEY,pb);
request.removeAttribute(mapping.getAttribute());
return(mapping.findForward("SayHello"));
}}
这个 saveError(有问题)actionForm.java
package hello;import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;public final class HelloForm extends ActionForm
{
private String userName = null;
public String getUserName (){
return (this.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 errors = new ActionErrors();
if((userName==null)||(userName.length()<1))
errors.add("username",new ActionMessage("hello.no.username.error"));
return errors;
}
}
package hello;public final class Constants {
public static final String PERSON_KEY="personbean";
}helloBean.java
package hello;public class HelloBean {
private String sample = "Start value";
//Access sample property
public String getSample() {
return sample;
}
//Access sample property
public void setSample(String newValue) {
if (newValue!=null) {
sample = newValue;
}
}
}PersonBean.javapackage hello;public class PersonBean{
private String userName=null;
public String getUserName(){
return this.userName;
}
public void setUserName(String userName)
{
this.userName=userName;
}
public void saveToPersistentStore()
{ }
}web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>hello.jsp</welcome-file>
</welcome-file-list>
<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.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="HelloForm" type="hello.HelloForm" />
</form-beans>
<action-mappings>
<action type="hello.HelloAction" path="/HelloWorld"
name="HelloForm" scope="request" validate="true" input="/hello.jsp">
<forward name="SayHello" path="/hello.jsp"/>
</action>
</action-mappings>
<message-resources parameter = "hello.application"/>
</struts-config>
进入hello.jsp后。输入名字,提交后,什么都没有,
在jbuilder下跟踪,好像没有执生action.
改为
<html:form action="/HelloWorld" focus="userName">;
楼主再试试,有问题我们再讨论;
加与不加都是那人错误,什么都没有,
没转向,我后面要做了个页面,把配转上先的的页面,还是一样
(2)在action中,ActionMessages errors = new ActionMessages();
改为: ActionErrors errors = new ActionErrors();
new ActionMessage("hello.dont.talk.to.monster",badUserName));中的ActionMessage也改为ActionError
这样应该就可以了。