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完全指南(三)实战的详细内容...