好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Eclipse开发struts完全指南(三)实战

Eclipse开发struts完全指南(三)实战

  4、新建一个页面index.jsp

  File->new->others,打开新建向导对话框,找到Amateras->JSP File,点击next按钮,FileName改为index.jsp,点击Finish。然后打开index.jsp文件进行编辑,内容如下:

<% @page pageEncoding = " GBK "  contentType = " text/html; charset=gb2312 "   %>
< html >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" />
< title ></ title >
</ head >
< body >
< form  name ="form1"  method ="post"  action ="/testweb/logincheck.do" >
< table  width ="300"   border ="0"  cellspacing ="0"  cellpadding ="0" >
< tr  align ="center" >
< td  colspan ="2" > 用户登录信息 </ td >
</ tr >
< tr >
< td > 用户名 </ td >
< td >
< input  name ="username"  type ="text"  id ="username"  size ="12" > user
</ td >
</ tr >
< tr >
< td > 用户密码 </ td >
< td >
< input  name ="password"  type ="text"  id ="password"  size ="12" > 123456
</ td >
</ tr >
< tr  align ="center" >
< td  colspan ="2" >< input  type ="submit"  name ="Submit"  value ="提交" ></ td >
</ tr >
</ table >
</ form >
</ body >
</ html >


  5、创建form数据对象

  打开File->new->package对话框,name中输入com.is.form,点击 Finish按钮。在右边的Package Explorer树中找到刚才创建的包,右键点击com.is.form包,菜单中的new-> others,找到Amateras->struts->Struts Action Form,点击next,在对话框中name栏输入LoginForm,点击Finish按钮。

  编辑LoginForm类的内容为:

package  com.is.form;
import  org.apache.struts.action.ActionForm;
public   class  LoginForm  extends  ActionForm 
{
   private   static   final   long  serialVersionUID  =   1L ;
   private  String username  =   "" ;
   private  String password  =   "" ;

   /**
  *  @return  Returns the password.
   */

   public  String getPassword()
  {
     return  password;
  }

   /**
  *  @param  password The password to set.
   */
   public   void  setPassword(String password)
  {
    this .password  =  password;
  }
   /**
  *  @return  Returns the username.
   */
   public  String getUsername() 
  {
     return  username;
  }
   /**
  *  @param  username The username to set.
   */
   public   void  setUsername(String username) 
  {
     this .username  =  username;
  }
}



  注意,这里的两个属性分别对应我们jsp中form中的两个输入控件的名称,为什么这样做,可以去看struts 的帮助文档了,我就不详细说了,还有form类再写完属性后,get和set方法可以通过eclipse的source中的命令来自动生成,在右键菜单中,也不详细说了,去网上查资料吧,关于eclipse的使用有很多的文档。


  创建action对象

  同创建form的过程相同,我们只是新建一个com.is.action包,同样的过程,打开新建向导,只是选择Struts Action,创建LoginAction.java类,均选默认值。我们编辑LoginAction为如下内容:

package  com.is.action; 
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; 

import  com.is.form.LoginForm; 

public   class  LoginAction  extends  Action 

private   static   final   long  serialVersionUID  =   1L ; 

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

//  this line is here for when the input page is upload-utf8.jsp, 

//  it sets the correct character encoding for the response 

String encoding  =  request.getCharacterEncoding(); 

if  ((encoding  !=   null )  &&  
(encoding.equalsIgnoreCase( " GB2312 " )))


response.setContentType
( " text/html; charset=GB2312 " ); 

}  else  { 

response.setContentType
( " text/html; charset=GBK " ); 



try  { 

if  (form  instanceof  LoginForm) 


LoginForm theForm  =  (LoginForm) form; 

if (theForm.getUsername().equals( " user " )  &&  

theForm.getPassword().equals( " 123456 " )) 


return   new  ActionForward( " /welcome.do?type=true " ); 




else  {                           

return   new  ActionForward( " /welcome.do?type=false " ); 




}  catch  (Exception e) 




//  this shouldn't happen in this example 

return   null ; 
     
    } 
}

  注意这里是直接用ActionForward转向的,你也可以按照struts中提供的空白例程struts-blank.war中的做法进行转向,可以比较一下会有收获的。

  创建登录成功页面

  同创建index.jsp页面相同,我们创建welcome.jsp页面,均使用默认设置。并编辑其内容如下:

<% @page pageEncoding = " GBK "  contentType = " text/html; charset=GBK "   %>
< html >  
< head >  
< meta  http-equiv ="Content-Type"  content ="text/html; charset=GBK" />  
< title ></ title >  
</ head >  
< body >  
<%  
String  type  =  request.getParameter( " type " ); 
if (type! = null && type.equals( " true " )){ 
out.print( " 欢迎您的光临! " ); 


else { 
out.print( " 对不起,你输入的用户名或者密码错误! " ); 

%>  
</ body >  
</ html >

  增加Struts-config.xml中的配置

  添加formbean的配置,在和标签之间加入:

<form-bean
name="loginForm"
type="com.is.form.LoginForm"/>

  添加jsp文件的映射,在和标签之间加入:

<action
path="/index"
forward="/index.jsp"/>

<action
path="/welcome"
forward="/welcome.jsp"/>

  添加action文件的映射,在和标签之间加入:

<action
path="/logincheck"
type="com.is.action.LoginAction"
name="loginForm"
scope="request"
validate="true"/>

  修改后的struts-config.xml大致如下形式:

<global-forwards>
</global-forwards>

<action-mappings>
  <action
  path="/index"
  forward="/index.jsp"/>

  <action
  path="/welcome"
  forward="/welcome.jsp"/>

  <action
  path="/logincheck"
  type="com.is.action.LoginAction"
  name="loginForm"
  scope="request"
  validate="true"/>

</action-mappings> 


 <controller processorClass=
 "org.apache.struts.tiles.TilesRequestProcessor"/>

<message-resources parameter="MessageResources"/>

<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
<set-property property="moduleAware" value="true"/>
</plug-in>

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>

</struts-config>

  运行测试程序

  右键点击testweb工程根目录,点击菜单中的Tomcate project->update context definition,将工程部署进tomcat,成功后会提示操作成功。

  点击菜单栏中的雄猫图标启动tomcat,然后在IE地址栏中输入http://localhost:8080/testweb/index.do,我们会看到index.jsp的页面内容。

查看更多关于Eclipse开发struts完全指南(三)实战的详细内容...

  阅读:38次