首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2 学习札记 NameSpace_Action_path_方法调用_ Wildcard_传参数

2012-08-29 
Struts2学习笔记NameSpace_Action_path_方法调用_ Wildcard_传参数NameSpace是action的访问路径?package

Struts2 学习笔记 NameSpace_Action_path_方法调用_ Wildcard_传参数

NameSpace是action的访问路径

?

<package name="front" extends="struts-default" namespace="/front">
??????? <action name="index">
??????????? <result>/Namespace.jsp</result>
??????? </action>
??? </package>
???
???? <package name="main" extends="struts-default" namespace="">
??????? <action name="index">
??????????? <result>/Namespace2.jsp</result>
??????? </action>
??? </package>

?

?

第一个Action的访问路径为:http://localhost:8080/Struts2_0200_Namespace/front/index.action

?

第二个Action的访问路径为:http://localhost:8080/Struts2_0200_Namespace/faront/index.action

任何没有配Namespace 的action都会被第二个处理

?

?

?

Wildcard

?

<struts>
??? <constant name="struts.devMode" value="true" />
??? <package name="actions" extends="struts-default" namespace="/actions">
??????? <action name="Student*" method="{1}">
??????????? <result>/Student{1}_success.jsp</result>
??????? </action>
???????
??????? <action name="*_*" method="{2}">
??????????? <result>/{1}_{2}_success.jsp</result>
??????????? <!-- {0}_success.jsp -->
??????? </action>
??? </package>
</struts>

?

调用方式??/actions/Studentadd?? /actions/Studentdelete? 等等

?

?

?

Action:

第一中方式:?? 一个普通的Java类

第二种方式:? public class IndexAction2 implements Action

第三种方式:? public class IndexAction3 extends ActionSupport

?

一般用第三种。

?


public class IndexAction3 extends ActionSupport {
?
?@Override
?public String execute() {
??return "success";
?}
}

?

?

?

Path

??? <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

?

<base href="<%=basePath%>" />

<a href="index.jsp">index.jsp</a>

可以用相对路径代替绝对路径

?

?

如果没有<base href="<%=basePath%>" />

<a href="/index.jsp">index.jsp</a>?

应该写绝对路径

?

?

?

?

方法调用有两种方式

?

第一种方式:指定方法名

第二种方式:动态的方法调用

?

??? <package name="user" extends="struts-default" namespace="/user">
??????? <action name="userAdd" method="add">
??????????? <result>/user_add_success.jsp</result>
??????? </action>
???????
??????? <action name="user" + name);
??System.out.println("age=" + age);
??return SUCCESS;
?}

?public String getName() {
??return name;
?}

?public void setName(String name) {
??this.name = name;
?}

?public int getAge() {
??return age;
?}

?public void setAge(int age) {
??this.age = age;
?}?
?
}

XML如下:

<struts>
??? <constant name="struts.devMode" value="true" />
??? <package name="user" extends="struts-default" namespace="/user">
???????
??????? <action name="user" + user.getName());
??System.out.println("age=" + user.getAge());
??return SUCCESS;
?}

?public User getUser() {
??return user;
?}

?public void setUser(User user) {
??this.user = user;
?}
?
}

User 类:

public class User {
?private String name;
?private int age;
?public String getName() {
??return name;
?}
?public void setName(String name) {
??this.name = name;
?}
?public int getAge() {
??return age;
?}
?public void setAge(int age) {
??this.age = age;
?}
}

?

XML


<struts>
??? <constant name="struts.devMode" value="true" />
??? <package name="user" extends="struts-default" namespace="/user">
???????
??????? <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
??????????? <result>/user_add_success.jsp</result>
??????? </action>
??? </package>
</struts>

?

调用方式:

http://localhost:8080/Struts2_0800_DomainModelParamInput/user/user!add?user.name="zhangsan"&user.age=1

?

?

3 DTO


public class UserDTO {
?private String name;
?private String password;
?private String confirmingPassword;
}

在Action里面接受参数的时候用的是UserDTO

http://localhost:8080/Struts2_0800_DomainModelParamInput/user/user!add?userDTO.name="zhangsan"&userDTO.age=1

?从UserDTO里面拿出相应的参数填充到UserDTO里面去就好了

?

?

?

?

?

?

热点排行