文档详情

6动态方法调用.doc

发布:2016-09-16约7.82千字共8页下载文档
文本预览下载声明
5.动态方法调用.docx Struts1框架提供了DispatchAction,从而允许一个Action内包含多个处理逻辑。 Struts2同样提供了这种处理多个请求的Action 比如:在一个页面上有登录和注册两个按钮,两个按钮都是提交到同一个Action进行业务处理。但处理的逻辑又完全不一样,这个时候我们就需要动态的改变URL来实现 首先我们要在JSP页面做点手脚, 先看JSP页面的代码: %@ page language=java contentType =text/html; charset=UTF-8 pageEncoding=UTF-8 % %@ taglib prefix=s uri=/struts-tags % !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN /TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns=/1999/xhtml head title注册页面/title style .errorMessage{color:red} /style script type=text/javascript function loginsubmit() { targetFrom = document.forms[0]; targetFrom.action = login!login.action?model=login; targetFrom.submit(); } /script /head body style=text-align: center h1欢迎注册/h1 hr / div align=center s:form action =login.action?model=regist s:textfield name = username label = 用户名 / s:textfield name = password label = 密码/ s:submit value = 注册/ tr td colspan=2 div align=right input type = button value = 登录 onclick=loginsubmit()/ /div /td /tr /s:form a href = userList.action查看会员信息/a /div /body /html 在登录按钮上点击的时候触发JS函数loginsubmit() 在loginsubmit函数中 我们将form的提交路径改为了 login!login.action?model=login 详细说明下: 第一个login也就是感叹号前面的login代表的是Action的名字,既是struts.xml中定义的action 第二个login也就是感叹号后面的login代表的是Action中的login函数 .action 是action的后缀。 model=login 是带到action中的参数 在action中如果定义了变量model并且定义了model的get set 方法,就能直接取到URL中带过去的值 我们看action的代码: package action; import java.io.UnsupportedEncodingException; import .URLEncoder; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; import java.util.Map.Entry; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; import erceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import entity.User; public class LoginAction extends ActionSupport implements ServletResponseAware { private String username ; p
显示全部
相似文档