Java类
package com.osp.action;
public class Addaction {
private String message;
// 添加操作
public String add() {
message = "==========执行了AddAction 类的add()方法==========";
return "Add";
}
public String getMessage() {
return message;
}
}
package com.osp.action;
public class Deleteaction {
private String message;
// 删除操作
public String delete() {
message = "==========执行了 DeleteAction类的delete()方法==========";
return "Delete";
}
public String getMessage() {
return message;
}
}
package com.osp.action;
public class Queryaction {
private String message;
// 查询操作
public String query() {
message = "==========执行了 QueryAction类的query()方法==========";
return "Query";
}
public String getMessage() {
return message;
}
}
package com.osp.action;
public class Updateaction {
private String message;
// 修改操作
public String update() {
message = "==========执行了 UpdateAction类的update()方法==========";
return "Update";
}
public String getMessage() {
return message;
}
}
13:37:48
凯旋的勇士 2017/3/9 13:37:48
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- Action中指定业务方法的调用—— 使用通配符*及表达式{n} -->
{1}.jsp
13:38:06
凯旋的勇士 2017/3/9 13:38:06
5个jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
添加操作
<br><br> .msg{<br> font-size:30px;<br> }<br>
${message}
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
删除操作
<br><br> .msg{<br> font-size:30px;<br> }<br>
${message}
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
添加操作
<br><br> .msg{<br> font-size:30px;<br> }<br> a{<br> text-decoration: none;<br> }<br> h1{<br> color:blue;<br><br> text-align:center;<br><br> }<br>
工作任务6:Action中指定业务方法的调用 ——使用通配符*及表达式{n}
案例2:
(练习)提问:若把案例1中 的UserManagerAction类拆分成4个Action类(即AddAction 、DeleteAction、UpdateAction和QueryAction),实现同 样功能,如何配置struts.xml?
点击此 处执行AddAction类的add()业务方法
点 击此处执行DeleteAction类的delete()业务方法
点 击此处执行UpdateAction类的update()业务方法
点击 此处执行QueryAction类的query()业务方法
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
查询操作
<br><br> .msg{<br> font-size:30px;<br> }<br>
${message}
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
修改操作
<br><br> .msg{<br> font-size:30px;<br> }<br>
${message}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
struts2
org.apache.struts2.dispatcher.ng.filter.Struts PrepareAndExecuteFilter
struts2
*.action
凯旋的勇士 2017/3/9 13:39:08
报的错误:
HTTP Status 500 - com.osp.action.Addaction.Add()
type Exception report
message com.osp.action.Addaction.Add()
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.NoSuchMethodException: com.osp.action.Addaction.Add()
ognl.OgnlRuntime.callAppropriateMethod (OgnlRuntime.java:1246)
ognl.ObjectMethodAccessor.callMethod (ObjectMethodAccessor.java:68)
com.opensymphony.xwork2.ognl.accessor.XWorkMethodAcc essor.callMethodWithDebugInfo (XWorkMethodAccessor.java:117)
com.opensymphony.xwork2.ognl.accessor.XWorkMethodAcc essor.callMethod(XWorkMethodAccessor.java:108)
ognl.OgnlRuntime.callMethod (OgnlRuntime.java:1369)
ognl.ASTMethod.getValueBody (ASTMethod.java:90)
ognl.SimpleNode.evaluateGetValueBody (SimpleNode.java:212)
ognl.SimpleNode.getValue (SimpleNode.java:258)
ognl.Ognl.getValue(Ognl.java:494)
ognl.Ognl.getValue(Ognl.java:458)
com.opensymphony.xwork2.ognl.OgnlUtil $2.execute(OgnlUtil.java:309)
com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExec ute(OgnlUtil.java:340)
com.opensymphony.xwork2.ognl.OgnlUtil.getValue (OgnlUtil.java:307)
com.opensymphony.xwork2.DefaultActionInvocation.invo keAction(DefaultActionInvocation.java:423)
com.opensymphony.xwork2.DefaultActionInvocation.invo keActionOnly(DefaultActionInvocation.java:287)
com.opensymphony.xwork2.DefaultActionInvocation.invo ke(DefaultActionInvocation.java:250)
org.apache.struts2.interceptor.DeprecationIntercepto r.intercept(DeprecationInterceptor.java:41)
com.opensymphony.xwork2.DefaultActionInvocation.invo ke(DefaultActionInvocation.java:244)
org.apache.struts2.interceptor.debugging.DebuggingIn terceptor.intercept(DebuggingInterceptor.java:256)
com.opensymphony.xwork2.DefaultActionInvocation.invo ke(DefaultActionInvocation.java:244)