他调用了
<action path="/initial"
type="hero.struts.actions.InitialAction"
scope="request"
validate="false">
<forward name="initial" path="indexDef"/>
</action>
-------------------------
中的hero.struts.actions.InitialAction类,你去看这个类吧,该类的execute或perform是处理结果
很可能该方法返回的是indexDef的路径,你又要去找了。
<action path="/initial"
type="hero.struts.actions.InitialAction"
scope="request"
validate="false">
<forward name="initial" path="indexDef"/>
</action>
-------------------------
中的hero.struts.actions.InitialAction类,你去看这个类吧,该类的execute或perform是处理结果
很可能该方法返回的是indexDef的路径,你又要去找了。
解决方案 »
- oracle hibernate ID 序列问题, 基于注解
- ext好用吗?它的可读性不高是吗?
- SSH框架 在线等!郁闷!!急
- Java实现TCP聊天问题,新手求教,谢谢
- 怎样在表单中添加在线文本编辑器?
- struts2使用<s:component>标签
- 我用的是Struts ActionForm 通过 enctype="multipart/form-data" 上传文件 ,但可能是页面过大,到ActionForm就结束。
- 求教jdbc连接oracl的问题
- 如何捕捉jTable中选择其中一行的事件。
- 突然想问啥是业务-.-#
- 请问在java用pop3接收邮件怎样判断是新邮件???
- jb+weblogic出现的问题
<servlet-name>hero</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
转发给hero去处理。hero一般是创建一个RequestProcessor对象,该对象根据initial查找配置文件得到和initial匹配的配置
<action path="/initial"
type="hero.struts.actions.InitialAction"
scope="request"
validate="false">
<forward name="initial" path="indexDef"/>
</action>
该类会创建一个hero.struts.actions.InitialAction对象,一个ActionMapping对象,然后把后者传递给前者的excute或perfom,接受到返回后继续走上面的路径
一个Servlet!是在哪里配置的呢?
一般在web.xml我找了半天没找着2、我在web.xml文件中找到这么一段话:
-------------------------
<servlet-mapping>
<servlet-name>hero</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping> <servlet-mapping>
<servlet-name>hero</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping><welcome-file-list>
<welcome-file>/IndexAction.jsp</welcome-file>
</welcome-file-list>-------------------------
这里是不是说以.action和.do为后缀的是同一个意思?
都映射为一个名字叫hero的Servlet,你可以找一下这个Servlet。
是这样的<servlet-name></servlet-name>
<servlet-class></servlet-class> 这个就是servlet!!!
都是指映射到一个jsp文件吗?
Servlet3、另外我在struts-config.xml中找到这段话(不知道是不是相关的^_^):
-------------------------
<action path="/initial"
type="hero.struts.actions.InitialAction"
scope="request"
validate="false">
<forward name="initial" path="indexDef"/>
</action>
-------------------------
谁能给偶说说这段话!
这个是Struts里面的配置,配置一个Action。
------总之我的目的只有一个:就是怎么找到initial.action映射的那个文件?!谢谢!
<welcome-file-list>
<welcome-file>/IndexAction.jsp</welcome-file>
</welcome-file-list>
访问IndexAction.jsp文件,该文件内部可能是一个<html:forwor/〉之类的东西,发起二次访问。
你说的不一定对应文件,这是一种逻辑名而已。
Mastering Jakarta Struts
//James Goodwill
//Wiley Publishing, Inc.
对struts就了解的底朝天。
-----------------------------------------------------------------------------------------
谢谢“serf() ”、“treeroot(根根) ”,我总结一下,是不是这样的一个过程?:
1、我输入http://localhost:8080,程序自动从web.xml配置文件搜索,找到
<welcome-file-list>
<welcome-file>/IndexAction.jsp</welcome-file>
</welcome-file-list>
于是就跳执行去IndexAction.jsp?!(问一下,假如是的话为什么是跳去执行这里?^_^)2、我打开IndexAction.jsp看了一下,就只有下面几行:
----------------------------
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %><c:redirect url="/initial.action"/>
----------------------------
这里是不是说又跳转到initial.action?!3、然后再在struts-config.xml文件中查找,找到
<action path="/initial"
type="hero.struts.actions.InitialAction"
scope="request"
validate="false">
<forward name="initial" path="indexDef"/>
</action>
然后跳去执行InitialAction文件(这是个Servlet?^_^)4、我又打开InitialAction文件,主要就下面的代码:
public class InitialAction extends AbstStrutsActionBase
{
public ActionForward perform(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
ActionForward actionForward = mapping.findForward(INITIAL);
// Create the container for any errors that occur
ActionErrors errors = new ActionErrors(); try
{
hero.interfaces.AdminSessionLocalHome projecth = (AdminSessionLocalHome)hero.interfaces.AdminSessionUtil.getLocalHome();
hero.interfaces.AdminSessionLocal projectl = projecth.create();
Vector projects = new Vector((Collection)projectl.getProjects());
request.getSession(true).setAttribute("allprojects",projects);
request.getSession(true).setAttribute("nbProjects",Long.toString(projects.size()));
request.getSession(true).setAttribute("wsname",null);
}catch(Exception e){e.printStackTrace();throw new ServletException();};
if (!errors.empty()) {
saveErrors(request, errors);
}
// Forward control to the appropriate URI as determined by the action.
return (actionForward);
}
}----------接下来是说跳到actionForward去吧,但到底是哪里呢??
2、<c:redirect url="/initial.action"/>使用了标签库,直接跳转。
3、这是一个配置而已,供别的类使用.这里面的使用你要读一下参考资料了,是一个复杂的过程,不过看了我说的那本书会非常清楚。
4.正确,
<action path="/initial"
type="hero.struts.actions.InitialAction"
scope="request"
validate="false">
<forward name="initial" path="indexDef"/>
</action>
里的indexDef指什么?没找着。
----------
----------
我在struts-config.xml里找了一下,出现indexDef的地方还有一处:
<global-forwards>
<forward name="initial" path="indexDef"/>
</global-forwards>
其它web.xml没出现过,我搜索程序所在文件夹也没有indexDef这个文件,这个indexDef到底指哪里呢???
<action path="/initial"
type="hero.struts.actions.InitialAction"
scope="request"
validate="false">
<forward name="initial" path="indexDef"/>////////////////这里我没找到indexDef文件
</action>
<action path="/protected/role"
type="hero.struts.actions.RoleAction"
name="roleForm"
scope="request"
input="/protected/Role.jsp">////////////////这里我没找到Role.jsp文件
</action><action path="/protected/worklist"
type="hero.struts.actions.WorklistAction"
scope="request"
validate="false">
<forward name="worklist" path="worklistDef"/>////////这里没找到worklistDef
</action>----------怎么回事?程序本身有问题?我按照http://localhost:8080,程序转换后页面
也打得开的呀!!怎么回事????(另外,上面的path默认根目录在哪里?哪里设置的?)