1,動態調用
UserAction.java
package com.pb.action.user;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ModelDriven;
import com.pb.entity.User;
import com.pb.service.UserService;
import com.pb.service.impl.UserServiceImpl;
public class UserAction implements ModelDriven {
private User user=new User();
public String login()throws Exception
{
String result="error";
if(new UserServiceImpl().isLogin(user))
{
result=Action.SUCCESS;
}
return result;
}
public String register()throws Exception
{
String result="error";
UserService userService=new UserServiceImpl();
int id=userService.addUser(user);
if(id>0)
{
result="success";
}
return "success";
}
@Override
public Object getModel() {
// TODO Auto-generated method stub
return user;
}
}
struts_user.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"./struts-2.0.dtd">
<struts>
<!-- 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
<constant name="struts.action.extension" value="do"/>
-->
<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭
<constant name="struts.serve.static.browserCache" value="false"/>
-->
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开
<constant name="struts.configuration.xml.reload" value="true"/>
-->
<!-- 开发模式下使用,这样可以打印出更详细的错误信息
<constant name="struts.devMode" value="true" />
-->
<!-- 默认的视图主题
<constant name="struts.ui.theme" value="simple" />
-->
<!-- 与spring集成时,指定由spring负责action对象的创建
<constant name="struts.objectFactory" value="spring" />
-->
<!--该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!--上传文件的大小限制
<constant name="struts.multipart.maxSize" value="10701096"/>
-->
<package name="default" namespace="/" extends="struts-default">
<global-results>
<result name="input">/login.jsp</result>
</global-results>
<action name="userAction" class="com.pb.action.user.UserAction">
<result name="success" type="redirect">userShowAll</result>
<result name="error" >login.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
login.jsp
<form action="userAction!login.action" method="post" name="login_form" >
<table align="center" border="1">
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="userPassword" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登陆" />
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
2,通配調用
UserAction1.java
package com.pb.action.user;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ModelDriven;
import com.pb.entity.User;
import com.pb.service.UserService;
import com.pb.service.impl.UserServiceImpl;
public class UserAction1 implements ModelDriven {
private User user=new User();
public String login()throws Exception
{
String result="error";
if(new UserServiceImpl().isLogin(user))
{
result=Action.SUCCESS;
}
return result;
}
public String register()throws Exception
{
String result="error";
UserService userService=new UserServiceImpl();
int id=userService.addUser(user);
if(id>0)
{
result="success";
}
return "success";
}
@Override
public Object getModel() {
// TODO Auto-generated method stub
return user;
}
}
struts_user.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"./struts-2.0.dtd">
<struts>
<!-- 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
<constant name="struts.action.extension" value="do"/>
-->
<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭
<constant name="struts.serve.static.browserCache" value="false"/>
-->
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开
<constant name="struts.configuration.xml.reload" value="true"/>
-->
<!-- 开发模式下使用,这样可以打印出更详细的错误信息
<constant name="struts.devMode" value="true" />
-->
<!-- 默认的视图主题
<constant name="struts.ui.theme" value="simple" />
-->
<!-- 与spring集成时,指定由spring负责action对象的创建
<constant name="struts.objectFactory" value="spring" />
-->
<!--该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!--上传文件的大小限制
<constant name="struts.multipart.maxSize" value="10701096"/>
-->
<package name="default" namespace="/" extends="struts-default">
<global-results>
<result name="input">/login.jsp</result>
</global-results>
<action name="userAction_*" class="com.pb.action.user.UserAction1" method="{1}">
<result name="success" type="redirect">userShowAll</result>
<result name="error" >login.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
<form action="userAction_register.action" method="post" name="register_form" >
<table align="center" border="1">
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="userPassword" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="注册" />
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>