JSP与Action的交互
1. JSP页面通过表单的Action属性决定响应的Action类,通过submit提交;
或用按钮来跳转:
<input type="button"
οnclick="location.href='deviceList.action?export=yes'">
或JSP可以划分多个frame:
<iframe src="AdminUserList.action"></iframe>
2. Action类接收请求的方式
HttpServletRequest request =(HttpServletRequest)ServletActionContext.getRequest();
request.getParameter("UserPwd");
request.setAttribute("errMsg",errMsg);
或
Map request = (Map) ActionContext.getContext().get("request");
Request.get();
Request.put();
3. Action类获取Session方式
Map session =(Map)ActionContext.getContext().getSession();
session.get("UserID")
session.put("UserID",user.getUserId());
4. Action类执行execute,返回result
5. 根据struts.xml中的配置以及Action的result来选择跳转页面
<actionname="ModifyPassword"class="ModifyPasswordAction">
<result name="success"type="redirect">
BasicUserInfo.action
</result>
<result name="modifyPwdFailed">
/user/modify_password.jsp
</result>
</action>
6. JSP可以获取Action的处理结果
<% User user = (User)request.getAttribute("user");%>
AJAX实例
functioncreateXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttpRequest=newActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttpRequest=newXMLHttpRequest();
}
}
functionresumeUser(){
if(confirm("是否启用用户?")){
createXMLHttpRequest();
xmlHttpRequest.open("get","AdminResumeUser.action?userId=<%=user.getUserId()%>",true);
xmlHttpRequest.onreadystatechange=haveResume;
xmlHttpRequest.send(null);}
}
functionhaveResume(){
if(xmlHttpRequest.readyState==4){
if(xmlHttpRequest.status==200){
history.go(0);
alert("启用用户成功");
}
}
依赖注入实例
*******************************************************************
<beanid="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource"ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect</prop>
<propkey="hibernate.show_sql">false</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/wlgl/bean/RoleUser.hbm.xml</value>
<value>com/wlgl/bean/User.hbm.xml</value>
</list>
</property>
</bean>
*******************************************************************
<bean id="userDao"
class="com.wlgl.dao.impl.UserDAOImpl"scope="singleton">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
*******************************************************************
<bean id="userService"
class="com.wlgl.service.user.impl.UserServiceImpl">
<property name="userDao"ref="userDao"></property>
<property name="userOptLogDao"ref="userOptLogDAO"></property>
</bean>
*******************************************************************
<bean id="UserListAction"
class="com.wlgl.action.mange.UserListAction"
scope="prototype">
<property name="accountService"ref="accountService">
</property>
<property name="userService"ref="userService"></property>
</bean>
DAO实例
public class UserDAOImpl
extends HibernateDaoSupport
implements UserDAO
{
@Override
public List<User> findAll()
{
// TODO Auto-generated method stub
String hql = "from User user orderby user.userType desc ";
return (List<User>)this.getHibernateTemplate().find(hql);
}
@Override
public UserfindById(Integer id)
{
User user =(User) this.getHibernateTemplate().get(User.class, id);
returnuser;
}
@Override
public voidremove(User user)
{
this.getHibernateTemplate().delete(user);
}
@Override
public voidsave(User user)
{
// TODOAuto-generated method stub
this.getHibernateTemplate().save(user);
this.getSession().flush();
}
@Override
public voidupdate(User user)
{
// TODOAuto-generated method stub
this.getHibernateTemplate().saveOrUpdate(user);
}
}