Struts2中调用Action的方法
2016-06-28 23:36
363 查看
Struts2中Action的调用方法可以分为三种
第一种:首先定义一个Action类,这个类中有两个方法一个登录,一个注册
public String login(){
System.out.println("登录的方法........................");
if (username.equals("demo") && password.equals("demo")) {
return "login_success";
} else {
return "error";
}
}
public String register(){
System.out.println("注册的方法........................");
if (password.equals(repassword)) {
return "register_success";
} else {
return "error";
}
}其实还有三个属性:
private String username;
private String password;
private String repassword;
还有get set方法
然后配置Action
<action name="user" class="com.action.packages.UserAction">
<result name="login_success">WEB-INF/pages/login_success.jsp</result>
<result name="register_success">WEB-INF/pages/register_success.jsp</result>
<result name="error">WEB-INF/pages/error.jsp</result>
</action>最后动态调用
<form action="user!login.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>这个就是调用的配置中名为user 的Action中的login方法,调用register方法如下:
<form action="user!register.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>总结一个公式就是:actionName!methodName.action
如果通过user.action方式进行调用,此时应该调用UserAction的execute()方法。没有那就等着报错!
上述方式在配置Action的时候就是配置struts.xml的时候,有的版本需要加上这样一句配置
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>第二种方式使用method属性来实现
同上同样是那个UserAction,同样当中有两个方法
配置struts.xml的写法
通过不同的action的名字(name属性)来调用就可以了
第三种通配符
<action name="*Dynamic" class="com.action.packages.UserAction" method="{1}">
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="error">WEB-INF/pages/error.jsp</result>
</action>如果访问register方法:
<form action="registerDynamic.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="password"/><br/><br/>
确认密码:<input type="password" name="repassword"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>看到没有register占用了星号,这个时候标记为{1}的地方都会替换为register,如果是login也是同理的。替换过后你就可以明白谁调用谁,然后该往哪个页面跳了吧。
第一种:首先定义一个Action类,这个类中有两个方法一个登录,一个注册
public String login(){
System.out.println("登录的方法........................");
if (username.equals("demo") && password.equals("demo")) {
return "login_success";
} else {
return "error";
}
}
public String register(){
System.out.println("注册的方法........................");
if (password.equals(repassword)) {
return "register_success";
} else {
return "error";
}
}其实还有三个属性:
private String username;
private String password;
private String repassword;
还有get set方法
然后配置Action
<action name="user" class="com.action.packages.UserAction">
<result name="login_success">WEB-INF/pages/login_success.jsp</result>
<result name="register_success">WEB-INF/pages/register_success.jsp</result>
<result name="error">WEB-INF/pages/error.jsp</result>
</action>最后动态调用
<form action="user!login.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>这个就是调用的配置中名为user 的Action中的login方法,调用register方法如下:
<form action="user!register.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>总结一个公式就是:actionName!methodName.action
如果通过user.action方式进行调用,此时应该调用UserAction的execute()方法。没有那就等着报错!
上述方式在配置Action的时候就是配置struts.xml的时候,有的版本需要加上这样一句配置
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>第二种方式使用method属性来实现
同上同样是那个UserAction,同样当中有两个方法
配置struts.xml的写法
通过不同的action的名字(name属性)来调用就可以了
第三种通配符
<action name="*Dynamic" class="com.action.packages.UserAction" method="{1}">
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="error">WEB-INF/pages/error.jsp</result>
</action>如果访问register方法:
<form action="registerDynamic.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="password"/><br/><br/>
确认密码:<input type="password" name="repassword"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>看到没有register占用了星号,这个时候标记为{1}的地方都会替换为register,如果是login也是同理的。替换过后你就可以明白谁调用谁,然后该往哪个页面跳了吧。
相关文章推荐
- JAVA设计模式--工厂方法模式
- 启动eclipse时,出现以下错误:发现了以元素 'd:skin' 开头的无效内容,此处不应含有子元素。
- java枚举学习
- JDK基础类之GZIPInputStream/GZIPOutputStream
- spring boot 调试 - 热部署
- java继承与覆盖
- Java数组拼接字符串几个写法性能比较
- JAVA之旅【第二天】 常量 进制 数据类型 变量 运算符
- Java软件与单片机串口通信
- springmvc上传图片
- Struts2系列:(15)对于Validator接口的探究
- java编码GBK的不可映射字符
- 001.我的第一个Java程序
- spring+ibatis环境搭建
- Java 开源博客 Solo 1.4.0 发布 - 简化
- Java UDP编程实例
- Java 开源博客 Solo 1.4.0 发布 - 简化
- Java 开源博客 Solo 1.4.0 发布 - 简化
- Java 开源博客 Solo 1.4.0 发布 - 简化
- java 实现单片机与PC串口通讯