就是在整合的时候,登录注册还要去加载页面上的数据,所以我写了一个BookAction来初始化登陆之后显示页面的信息,
struts_user.xml,struts_book.xml配置文件也有两个,struts_user.xml是登录用的,struts_book.xml是用来初始化登陆后页面显示的信息,我这个分法是模块化,请原谅....我的问题是:从struts_user.xml中的action转发到struts_book.xml的aciton,怎么指定方法名,就是我要调用BookAction中的list()方法,我该怎么做,还有就是,我在登录的时候做了判断,如果是普通会员登录那就跳入bookAction中的main.jsp,如果是管理员登录那就跳入struts_book.xml中bookAction的manager.jsp,那么我在struts_book.xml中的result的name怎么写
登录的配置信息struts_user.xml:<struts>
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<constant name="struts.configuration.xml.reload" value="true"></constant>
<constant name="struts.i18n.reload" value="true"></constant>
  <!-- 默认的视图主题 -->
    <constant name="struts.ui.theme" value="simple" />
    <constant name="struts.objectFactory" value="spring" />

<package name="user" extends="struts-default" >
<action name="userAction" class="userAction">
<result type="chain">bookAction</result>
<result name="error">/index.jsp</result>
<result name="logout">/index.jsp</result>
<result name="manager" type="chain">bookAction</result>
</action>
</package></struts>    struts_user.xml对应的UserAction信息public class TUserAction extends BaseAction { private static final long serialVersionUID = 1482245239790611680L;

private ITUserBiz userBiz;
private TUser user;
private Map session;
private String msg;

set和get我省掉为了直观 /**
 * 登录
 * @return
 * @throws Exception
 */
public String login() throws Exception {
session=ActionContext.getContext().getSession();
TUser u=this.userBiz.login(this.user);
if(u!=null){
session.put("user", u);
if(u.getUserType()==1){
return "manager";
}
return SUCCESS;
}else{
this.msg="<script color='red'>alert('用户名或密码错误,请重新登录')</script>";
return ERROR;
}
}
/**
 * 注册
 */
public String logout() throws Exception {
this.userBiz.logout(user);
this.msg="<script color='red'>alert('注册成功,请登录')</script>";
return "logout";
}
}
struts_book.xml:配置信息
<struts>
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<constant name="struts.configuration.xml.reload" value="true"></constant>
<constant name="struts.i18n.reload" value="true"></constant>
  <!-- 默认的视图主题 -->
    <constant name="struts.ui.theme" value="simple" />
    <constant name="struts.objectFactory" value="spring" />

<package name="book" extends="struts-default" >
<action name="bookAction" class="bookAction" method="list">
<result>/main.jsp</result>
<result name="manager">/manager.jsp</result>
</action>
</package></struts>    当然还有一个BookAction来实现业务逻辑:public class TBookAction extends BaseAction { private static final long serialVersionUID = 2923206199972578677L;
private ITBookBiz bookBiz;
private TBook book;

private List<TBook> list;

        set和get我省掉为了直观          /**
 * 书籍列表
 */
public String list() throws Exception {
//request=(Map) ActionContext.getContext().get("reuqest");
// HttpServletRequest request = ServletActionContext.getRequest();
PageBean pageBean = this.processPageBean();
// request.put("bookList",this.bookBiz.list(book, pageBean));
if(book==null){
book=new TBook();
}
list=this.bookBiz.list(book, pageBean);
return SUCCESS;
}
}

解决方案 »

  1.   

    还有就是,我在登录的时候做了判断,如果是普通会员登录那就跳入bookAction中的main.jsp,如果是管理员登录那就跳入struts_book.xml中bookAction的manager.jsp,那么我在struts_book.xml中的result的name怎么写

    可以在返回的时候写上普通用户 return "main"  管理员 return "manager"

    我的问题是:从struts_user.xml中的action转发到struts_book.xml的aciton,怎么指定方法名,就是我要调用BookAction中的list()方法,我该怎么做,
    这句话不太明白
    是不是 登录action触发之后紧接着触发初始化系统信息的action?
    <action name="List" class="com.system.web.action" method="list">
                <result name="list">sitecolumnList.jsp</result>
            </action><action name="Store" class="com.system.web.action" method="store">
                <result name="input">sitecolumnEdit.jsp</result>
                <!-- 传动态参数siteid到List.action中,如果传静态参数siteid=%{siteid}改为siteid=定值 -->
                <result type="redirect">List.action?siteid=${siteid}</result> 
    是这个意思?
      

  2.   

    "如果是普通会员登录那就跳入bookAction中的main.jsp,如果是管理员登录那就跳入struts_book.xml中bookAction的manager.jsp"你这个直接在userAction中写不就行了,没明白为什么还要跑到bookAction中去。
    "从struts_user.xml中的action转发到struts_book.xml的aciton,怎么指定方法名,就是我要调用BookAction中的list()方法,我该怎么做",你要调用BookAction中的list()方法,可以在UserAction写一个呀,然后调用bookService中的接口就行了,事务处理你难道放在action中的?
    我的回答是按照我理解的问题回答的,我感觉自己好像没太理解你要表达的意思。
      

  3.   

    3L正解~
    method="你的方法名"
      

  4.   

    http://download.csdn.net/detail/s478853630/4382009
    建议你参考一下这个,或许更管用