Java框架Struts2之初体验(一)

写在前面的日记

离大三开学有一段时间了,在学校的日子也快结束了。学校在大三开设的课程为JAVA框架,对于我这种已经打算从事PHP行业的小菜鸟来说本来不打算学的。今天在机房上课的时候突然想到一位前辈说的话,大概的意思就是程序员应该学习更多的语言来扩展自己的思维和眼界。仅仅局限于某种语言是不可取的。因此决定在学习PHP之余重拾Java,好好学习Java思想。争取明年能熟练运用java进行项目开发。


Java框架Struts2之初体验(一)

Struts2是一种基于MVC的Java框架,老师说挺多人用的,至于现在还有没有人用我也不清楚,也没去了解过。由于是基于我所熟悉的MVC模式,了解了一下流程就很快能上手了。以下为一个简单的登陆例子,只为记录自己所学。


Model 模型

新建一个LoginService类,不需要继承或实现任何父类或接口
模拟一下登陆流程,不操作数据库。

package cc.ccyou;

public class LoginService {
    public boolean login(String username, String password){
        if(username.equals("admin") && password.equals("123456")){
            return true;
        }
        return false;
    }
}

一个非常简单的模型,为了走流程而诞生 [笑哭]


Controller 控制器

定义Action类,调用业务逻辑,返回结果视图,不需要继承或实现任何父类或接口,只需要遵守某些命名规范即可:如果该Action类是通过表单提交调用,且Action类需要使用表单提交的请求参数,那么必须在Action类中声明与表单域的名字对应的变量,并为变量提供getters/setters方法; Action类中必须有一个public String execute(){}形式的方法,该方法将在访问Action时被Struts2框架自动调用,实现控制逻辑。

package cc.ccyou;

public class LoginAction {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String execute(){
        LoginService ls = new LoginService();
        if(ls.login(username, password)){
            return "success";
        }
        return "fail";
    }
}

由Action类中execute方法返回的字符串需要到struts.xml中配置


struts.xml的配置

配置很简单,正确书写package内的action标签即可。其中result的name分别为execute方法所返回的字符串,值则对应的跳转页面。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="cc.ccyou" extends="struts-default">
        <action name="Login" class="cc.ccyou.LoginAction">
            <result name="success">/welcome.jsp</result>
            <result name="fail">/index.jsp</result>
        </action>
    </package>
</struts>   

View 视图

最后,引入Struts2的标签库进行视图的渲染即可。s为前缀,或者说别名,可以自定义。
index.jsp

  <body>
    <%@taglib uri="/struts-tags" prefix="s" %>
    <s:form action="Login">
        <s:textfield name="username" label="input username"></s:textfield>
        <s:password name="password" label="input password"></s:password>
        <s:submit value="Login"></s:submit>
    </s:form>
  </body>

welcome.jsp

  <body>
    Hello,${username}
  </body>

web.xml 中配置FilterDispatcher

FilterDispatcher是Struts2框架API中提供的类,任何一个客户端的请求都必须经过FilterDispatcher进行过滤才能进入框架流程。在myeclipse中引入Struts2框架会自动生成该配置,如果url-pattern的值为*.action则需要修改为 /* 让它过滤所有页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值