[Java web]-- struts2(2)

1.struts.xml <package 作用:管理配置信息
  *将不同模块的配置分包
  *通过namespace属性解决了配置信息的同名冲突
  *不同的模块封装在不同的package中,且每个package都定义独有的namespace
  *namespace:action的访问前缀
  *namespace默认值:""
  <package name="c3535" extends="struts-default" namespace="/admin35">
<action name="c35" 
<action name="c36" 
<action name="c37"
  </package>
    http://localhost:8989/appname/admin35/c35
http://localhost:8989/appname/admin35/c36
http://localhost:8989/appname/admin35/c37
  <package name="c3535" extends="struts-default" namespace="/employee35">
<action name="c35" 
<action name="c36" 
<action name="c37" 
  </package>
    http://localhost:8989/appname/employee35/c35
http://localhost:8989/appname/employee35/c36
http://localhost:8989/appname/employee35/c37
补充:
  namespace匹配:回溯原则
  url:http://localhost:8989/struts2_day2/emp35/a/b/c/query  
  匹配过程:
    1.查找namespace为/emp35/a/b/c的package,如果如此package则在其内部查找对应的action
 如果没优此package,则转到2步
2.查找namespace为/emp35/a/b的package,如果如此package则在其内部查找对应的action
 如果没优此package,则转到3步
3.查找namespace为/emp35/a的package,如果如此package则在其内部查找对应的action
 如果没优此package,则转到4步
4.查找namespace为/emp35的package,如果如此package则在其内部查找对应的action
 如果没优此package,则转到5步
5.查找namespace为/的package,如果如此package则在其内部查找对应的action
 如果没优此package,则404
=====================================================================================
2.跳转:
  class UserAction extends ActionSupport{
public String execute(){
......
return "c35ok";//跳转
}
  }
  2.1 Action --> JSP
      *转发   type="dispatcher"  默认值
     <result name="c35ok" type="dispatcher">/index.jsp</result>
 *重定向  type="redirect"
     <result name="c35ok" type="redirect">/index.jsp</result>
  2.2 Action-->Action
      【同包跳转】
 *转发  type="chain"
 <result name="c35ok" type="chain">要跳转到的Action的配置名</result>
 *重定向  type="redirectAction"
 <result name="c35ok" type="redirectAction">要跳转到的Action的配置名</result>
 【跨包跳转】
 *转发  type="chain"
 <result name="c35ok" type="chain">
<param name="namespace">/xxx</param>
<param name="actionName">要跳转到的Action的配置名</param>
 </result>

 *重定向  type="redirectAction"
 <result name="c35ok" type="redirectAction">
<param name="namespace">/xxx</param>
<param name="actionName">要跳转到的Action的配置名</param>
 </result>
  2.3 补充:
      *重定向和转发的选取原则:
   1>能转发则转发
2>如果可能会导致重复提交,则选择重定向:
          在Action中完成了增删改功能之后建议使用重定向选择视图
 在Action中完成了查询功能后可以选择使用转发来选择视图
 *Action向Action的跳转时,对于重定向和转发的选择:chain   redirectAction
   1>每个Action都是一个可以独立完整处理完成一个功能的逻辑单元
2>一个请求不需要多个Action来共同完成
3>Action之间的跳转,属于功能之间的衔接
4>Action之间跳转建议使用redirectAction
 *  response.sendRedirect("/appname/abc.jsp?name=xxx&age=xxx");
    等价
    <result name="xxx" type="rediect">
<param name="location">/abc.jsp</param>
<param name="name">xxx</param>
<param name="age">xxx</param>
</result>
 
页面中取值:
  ${param.name}
  ${param.age}
=====================================================================================
3.Action中请求参数的接收:
  3.1 零散接收参数
      *在Action类中定义和请求参数同名的成员变量即可。
 *set/get不可省略
  3.2 以实体的形式整体接收
      *page:
   <form action="${pageContext.request.contextPath}/param/param" method="get">
<input type="text" name="user35.id"/>
<input type="text" name="user35.name"/>
<input type="text" name="user35.age"/>
<input type="submit" value="submit"/>
</form>
 *Action:
        *定义名为user35的成员变量,并添加set/get
*且user35的类型中含有属性:id,name,age.如:
    private User user35;
且:
class User{
id;
name;
age;
set/get;
}
  3.3 以数组形式整体接收
       *page:
   <form action="${pageContext.request.contextPath}/param/param" method="get">
爱好:<input type="checkbox" name="hobby" value="football"/>足球<br/>
<input type="checkbox" name="hobby" value="basketball"/>篮球<br/>
<input type="checkbox" name="hobby" value="valleyball"/>排球<br/>
<input type="submit" value="submit"/>
</form>
  *Action:
    *定义和请求参数同名的数组或List,并添加set/get
          private List<String> hobby;
 set/get;
   3.4 以泛型为实体的List接收
  *page:
   <form action="${pageContext.request.contextPath}/param/param" method="get">
<input type="text" name="users[0].id"/>
<input type="text" name="users[0].name"/>
<input type="text" name="users[0].age"/><br/>

<input type="text" name="users[1].id"/>
<input type="text" name="users[1].name"/>
<input type="text" name="users[1].age"/><br/>

<input type="text" name="users[2].id"/>
<input type="text" name="users[2].name"/>
<input type="text" name="users[2].age"/><br/>
<input type="submit" value="submit"/>
</form>
  *Action:
    *定义和参数同名的成员变量 a,且a是一个以User为泛型的List
*为a添加set/get;
private List<User> users;
set/get;
====================================================================================       
补充:action ajax交互
    *ajax  请求servlet
*servlet 通过response.getWriter().print("xxxx");响应

*ajax 请求Action
*Action  响应ajax请求:
   class AjaxAction35 extends ActionSupport{
public String execute(){
//接收ajax请求并处理最终获得业务结果数据data
//将data转成json
//ServletActionContext.getResponse.getWriter().print(json);
//ServletActionContext.getResponse.getWriter().close();
//return null;
}
}
*注意:最后return null;告知struts2我们已经自己处理的响应,则struts2不再处理
      响应 
======================================================================================
login   jsp       action          service      dao         db
        url     param  result    调用正确  param  sql
query   jsp  action   service  dao  db
update   jsp  action   service  dao  db
delete   jsp  action   service  dao  db
insert   jsp  action   service  dao  db
1.排错
2.错误分析
3.debug
======================================================================================
<link href="/appname/..."
<script src="/appname/...">
<img src="/appname/..."
<form action="/appname"
<a href="/appname"
===================================================================================


   
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Eclipse中配置Struts 2,您需要按照以下步骤进行操作: 1. 下载并安装Eclipse:首先,您需要从Eclipse官方网站(https://www.eclipse.org/downloads/)下载并安装Eclipse IDE。 2. 创建一个新的Java项目:在Eclipse中,选择“File”(文件)菜单,然后选择“New”(新建)> “Java Project”(Java项目)。输入项目名称并点击“Finish”(完成)。 3. 导入Struts 2库:右键单击项目,选择“Properties”(属性),然后选择“Java Build Path”(Java构建路径)。在“Libraries”(库)选项卡下,点击“Add External JARs”(添加外部JAR文件),然后导航到Struts 2库的位置并选择它们。点击“OK”来应用更改。 4. 创建Struts 2配置文件:在src目录下创建一个名为"struts.xml"的文件。这个文件将包含Struts 2的配置信息,如拦截器、动作映射等。 5. 配置web.xml文件:在Web项目的WebContent/WEB-INF目录下找到web.xml文件。在其中添加以下内容: ```xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 6. 创建Struts 2动作类:在src目录下创建一个包,并在该包中创建一个继承自ActionSupport的类。这个类将作为Struts 2的动作类,处理来自用户的请求。 7. 创建JSP视图:在WebContent目录下创建一个JSP文件,用于显示动作类处理后的结果。 以上是配置Struts 2的基本步骤。您可以根据具体需求进一步配置和定制化。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事随风ing

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值