您的位置:首页 > 编程语言 > Java开发

struts2框架搭建

2013-08-04 01:43 141 查看
背景:做了两年的开发,工作性质属于外包人员。接触以及用过jsp,php开发WEB网站,有时候初一想似乎挺可以的。但是最近面试做自主产品研发的岗位时,被要求直接机试希望可以搭建一个SSH框架,并完成一个登录功能时,一身冷汗就出来了。之前的开发中框架都是由大牛搭建的,自己只要负责能在框架上开发功能修改问题单就好,从没有搭建框架的概念,可想而知机试时候的狼狈。为解决这个问题,研究了下框架的搭建并记录(本篇主要是struts2)。

环境:jdk6+tomcat6+win7+struts-2.2.3.1

参照文章:/article/8170252.html

操作测试完成后的文档如下图:



web.xml

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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

<display-name>ENetGo</display-name>

<filter>

<filter-name>SSH</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>SSH</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<welcome-file-list>

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

</welcome-file-list>

</web-app>

index.jsp BODY内的内容

<FORM action="login" method="post">

<DIV class=user_main_box>

<UL>

<LI class=user_main_text>用户名:</LI>

<LI class=user_main_input><INPUT class=TxtUserNameCssClass

id=TxtUserName maxLength=20name="user.TxtUserName"></LI>

</UL>

<UL>

<LI class=user_main_text>密    码:</LI>

<LI class=user_main_input><INPUT class=TxtPasswordCssClass

id=TxtPassword type=password
name="user.TxtPassword"></LI>

</UL>

<UL>

<LI class=user_main_text>角    色:</LI>

<LI class=user_main_input><SELECT id=DropExpiration

name="user.TxtUserType">

<OPTION value="normal" selected>普通用户</OPTION>

<OPTION value="websiteManager">合作用户</OPTION>

</SELECT> <br /><input type="submit" value="提交" />    <A href="http://www.baidu.com"><span

class="user_register">注册用户</span></A></LI>

</UL>

</DIV>

</FORM>

struts.xml 注意名字不要拼写错误(搭建的时候有拼写错了,导致在搭建的时候一直找不到原因),放的位置在如上图位置(保存java文件的SRC目录下)。

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

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<package name="strutsqs" extends="struts-default">

<action name="login" class="com.cdy.enetgo.action.LoginAction">

<result name="success">/sysmain.jsp</result>

<result name="error">/error.jsp</result>

</action>

</package>

</struts>

以上配置文件中红色文字部分其实可以随意填写,只要和web.xml节点<filter-name>SSH</filter-name>的值SSH不一样就可以了;绿色部分普通的action就用默认的就可以了,工作中需要定义成其他的继承包的好像只有在支持JSON的时候不一样,详细可以找找资料。此处的result节点参数必须和处理action的返回结果对应起来,否则会报错。另外在创建项目的时候注意选择下自己的webmodule参数,选成3.0的时候会报一个tomcat的jar版本问题(没解决,后来调成了2.5)

UserForm.java (主要是用于封装jsp页面FORM表单传递的数据,注意属性的名称需要和JSP页面文本框的name属 性值user.TxtUserName,user.TxtPassword,user.TxtUserType的user.后面部分保持一致)

public class UserForm {

private String TxtUserName;

private String TxtPassword;

private String TxtUserType;

public String getTxtUserName() {

return TxtUserName;

}

public void setTxtUserName(String txtUserName) {

TxtUserName = txtUserName;

}

public String getTxtPassword() {

return TxtPassword;

}

public void setTxtPassword(String txtPassword) {

TxtPassword = txtPassword;

}

public String getTxtUserType() {

return TxtUserType;

}

public void setTxtUserType(String txtUserType) {

TxtUserType = txtUserType;

}

}

LoginAction.java (以下action中封装类的变量名称需要和JSP页面文本框的name属性值user.TxtUserName,user.TxtPassword,user.TxtUserType的user保持一致)

public class LoginAction extends ActionSupport {

private static final long serialVersionUID = 1L;

private UserForm user;

public UserForm getUser() {

return user;

}

public void setUser(UserForm user) {

this.user = user;

}

public String execute() {

if(user != null)

{

System.out.println(user.getTxtUserName()+user.getTxtPassword());

return SUCCESS;

}

return ERROR;

}

}

总结:以上是自己结合参考博客内容,最终搭建成功后的内容,但因为中间依旧出了些古怪的错误(像拼写配置文件名称错误等不容易查到原因的),所以花费了很多不必要的时间,但也让我理解的更清晰了,之后会尝试spring和hibernate的搭建。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: