继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JAVA_Struts2学习小计

慕粉2139185169
关注TA
已关注
手记 30
粉丝 27
获赞 128

1、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>HelloWorldStruts2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<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>

</web-app>
2、struts2.xml
<?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">
<!-- url-action-method(exacute())-result(view) -->
<struts>
<!-- namespace URL的逻辑路径 -->
<package name="test" namespace="/first" extends="struts-default">
<!-- action中name可以支持通配符 如hello_* method='{1}'-->
<action name="hello" class="com.pluto.action.HelloWorld">
<!-- 可以有多个result 根据action方法返回值与指定的name值匹配
返回相应视图 -->
<result name="success_say">/helloworld.jsp</result>
</action>
<!-- Add your actions here -->
</package>

</struts>
3、action类
package com.pluto.action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorld extends ActionSupport
{

private String uname;

@Override
public String execute() throws Exception
{
    return "success_say";
}

public String getUname()
{
    return uname;
}

public void setUname(String uname)
{
    this.uname = uname;
}

}

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP

热门评论

局部结果:<action>中的<result>

<result name ='' type=''>...</result>

全局结果:<global-result>

<result>

<param name='location'>/{1}.jsp</param> 物理视图资源

<param name='parse'>true/false</param> OGNL的支持

</result>

</global-result>[也是要在package标签内]

D、多个struts配置文件

引入配置文件 对不同配置文件的管理  如(用户action  商品action 日志等)

<include file="userAction.xml"></indclude>

E、默认action

<default-action-ref name="other"></default-action-ref>

<action name="other"><result>/bug.jsp</result></action>

F、struts的后缀

配置中增加 <constant name="struts.action.extenxion" value="true"></constant>

还可以在struts.properties中配置,如果多个用逗号隔开 do,action,deal

还可以在web.xml中配置,在配置过滤器类增加 <init-param>(<param-name><param-value>)

G、接受参数

 -action类封装属性(获取form表单提交的参数一致)

 -action类注入对象(该对象封装的属性对应要获取的form中控件的name参数)

 -action实现ModelDriven<!!!推荐使用>

H、处理结果类型


二、进一步应用struts2

A、访问servlet API(request、response、servletcontext)

actioncontext  、实现**Aware接口 、ServletActionContext

B、url--action的图映射

可以使用action所在的package  的 namespace命名空间  namespace="/test/hello"

url可访问:..8080/webapp/test/hello/xx.action

这是对action的一种管理

C、动态方法调用

一个action对应多个请求处理,避免action太多

-指定method属性:action中 存在多个处理请求的方法(add() update() )

 在action配置 method="add" 

-感叹号方式 :struts.xml中开启 <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

<result>/result.jsp</result>

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

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

url访问..8080/webapp/test/hello/helloworld!add.action

-使用通配符:!!!推荐使用

<action name="hellworld_*" method="{1}"...

<result>/result.jsp</result>

<result name="add">/{1}.jsp</result>


查看全部评论