1、概念; 有很多相似的result匹配,一个一个的写,比较浪费时间,就产生了通配符映射。
2、实现
2.1、Action类
public Class UserAction{
public String UserAction-save(){
System.out.println("save");
return "success";
}
public String UserAction-update(){
System.out.println("update");
return "success";
}
public String UserAction-delete(){
System.out.println("delete");
return "success";
}
}
2.2、struts2.xml
<struts2>
<package name="随便起一个包名" extend="struts-defult" namespace="/" >
<action name="可以随便起,但要见名知意" class="路径.UserAction" method="要调用的action类里面的方法">
<result name="Action类函数的返回值">要转发的地方
result>
action>
<action name="UserAction-*" class="路径.UserAction" method="{1}">
<result name="Action类函数的返回值">要转发的地方
result>
action>
package>
struts2>
2.3、jsp中
User-save
User-update
User-delete
1、概念:
通过url动态调用Action中的方法
默认情况下是禁用的,需要手动打开
<constant name="struts.enable.DynamicMethodInvocation" value="true">constant>
2、实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AqoFH0di-1668229982274)(D:\Photo\typora-user-images\image-20221112091852888.png)]
直接在网址中输入!方法
ProductId: ${productId}
ProductName: ${productName}
ProductPrice: ${productPrice}
以上代码看起来就像没有对象,就能调用对象的数据成员,这其实是struts2已经对获取属性进行了封装。从栈里面查找这些属性值。
2.1、读取对象栈的属性
object.propertyName
object{'propertyName'}
object{"propertyName"}
==
2.2、读取Map栈的属性
<constant name="struts.ognl.allowStaticMethodAccess"
value="true">constant>
<%
String [] names=new String[]{"aa","bb","cc"};
request.setAttribute("name",names);
%>
length
1、struts.xml
<action name="" class="" method="">
<exception-mapping result="input" exception="报错对应的类名">exception-mapping>
<result name="input">result>
action>
2、jsp
${exception}
${exception.message}
用来输出值栈属性的值
需要导入标签
<%@ taglib prefix="s" url="/struts-tags"%>
语法:
1、概念:
创建一个URL字符串
输出结果 /web/address?id=000
参考文献
B站尚硅谷Struts2视频