最近在学习SSH框架,之前Javaweb学的不扎实。所以做好笔记,方便以后的学习。
Struts2常量的配置通常采用3种方式,分别如下:
name:该属性指定了常量的常量名。
value:该属性指定了常量的常量值。
代码示例如下:
<struts>
<constant name="struts.il8n.encoding" value="UTF-8"/>
<constant name="struts.devMode" value="true"/>
struts>
其格式是 key-value 对,及每个key对应一个value,key表示的是Struts2框架中的常量,而value则是其常量值。具体方式如下:
###设置默认编码集为UTF-8
struts.il8n.encoding=UTF-8
##设置action请求的扩展名为action或者没有扩展名
struts.action.extension=action,
###设置不使用开发模式
struts.devMode=false
###色红孩子不开启动态方法调用
struts.enable.DynamicMethodInvocation=false
和struts.xml文件一样,此文件也应存放于WEB-INF/classes路径下
在web.xml文件中配置核心过滤器StrutsPrepareAndExecuteFilter时,通过初始化参数来配置常量。通过< filter >元素的< init-param >子元素指定,每个< init-param >元素配置了一个Struts2常量,如下列代码所示:
<filter>
<filter-name>struts2<filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
filter-class>
<init-param>
<param-name>struts.il8n.encodingparam-name>
<param-name>UTF-8param-name>
init-param>
filter>
Action作为框架的核心类,实现对用户请求的处理,被称为业务逻辑控制器。实现Action控制类共有3种方式:
ActionPOJO全程是Palin Ordinary Java Object (简单的java对象),只要具有一部分getter/setter方法的类就可以称作POJO。一般在这个POJO类中,要有一个公共的无参的构造方法和一个execute()方法(此方法时Action类的默认请求处理方法,定义如下)
public String execute() throws Exception{
return "success";
}
execute()方法的要求如下:
方法的权限修饰符为public。
返回一个字符串,就是指示的下一个页面的Result。
方法没有参数。
实现Action接口
继承ActionSupport类
下面将通过一个小例子向大家完整的讲解上述所有的方法
目录:
LoginAction.java
package day03011;
public class LoginAction {
public String execute(){
System.out.println("LoginAction.....execute");
return "success";
}
}
LoginAction1.java
package day03011;
import com.opensymphony.xwork2.Action;
public class LoginAction1 implements Action {
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
public String loginx() throws Exception {
return SUCCESS;
}
}
LoginAction2.java
package day03011;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction2 extends ActionSupport {
/**
* 在action当中定义属性,
* 属性名和请求当中参数名一致
* 属性要有标准的Getter/Setter
*
* username==》setUsername
* userName==》setUserName
*/
private String userName;
private String password;
public String login(){
if (userName==null || "".equals(userName)) {
return ERROR;
}
return SUCCESS;
}
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;
}
}
LoginAction4.java
package day03011;
public class LoginAction4 {
public String check(){
return "success";
}
public String regrist(){
return "success";
}
public String login(){
return "success";
}
}
最后是配置文件struts.xml
<struts>
<constant name="struts.devMode" value="true">constant>
<package name="a1" namespace="/"
extends="struts-default">
<action name="login" class="day03011.LoginAction"
method="execute">
<result name="success">/success.jspresult>
<result name="fail">/fail.jspresult>
action>
<action name="login1" class="day03011.LoginAction1" >
<result name="success">/success.jspresult>
action>
<action name="loginx" class="day03011.LoginAction1"
method="loginx">
<result name="success">/success.jspresult>
action>
<action name="login2" class="day03011.LoginAction2"
method="login">
<result name="success">/success.jspresult>
<result name="error">/fail.jspresult>
action>
<action name="user_*" class="day03011.LoginAction4"
method="{1}">
<result name="success">/success.jspresult>
<allowed-methods>check,login,regristallowed-methods>
action>
package>
struts>
首页和成功页自己随便做一个就好了,我的就是一个输入框然后提交。若有任何疑问或是不解,请在下方评论留言,谢谢。