Struts2为什么不能直接调用jsp页面???

使用struts2时,过滤器配置如下:

struts2
org.apache.struts2.dispatcher.FilterDispatcher


struts2
[color=red]*.do[/color]

在jsp中使用了struts2的标签,为什么不能直接访问jsp页面,求高人解释一下???

[quote]
你加入struts标签的引用试试,就好了
[code="java"]
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


My JSP 'test.jsp' starting page





/s:form


[/code]
[/quote]
确实不行,会出现@hechenhui1983说的错误,我觉得应该不能直接访问JSP,如果页面包含了struts标签的话,因为从其对标签的处理可以看出,下面是org.apache.struts2.views.jsp。ComponentTagSupport中的一段:
[code="java"]
public int doStartTag() throws JspException {
component = getBean(getStack(), (HttpServletRequest) pageContext.getRequest(), (HttpServletResponse) pageContext.getResponse());
Container container = Dispatcher.getInstance().getContainer();
container.inject(component);
    populateParams();
    boolean evalBody = component.start(pageContext.getOut());

    if (evalBody) {
        return component.usesBody() ? EVAL_BODY_BUFFERED : EVAL_BODY_INCLUDE;
    } else {
        return SKIP_BODY;
    }
}

[/code]
这里对标签开始的处理,就要求取得Dispatcher,没有后面应该就无法进行了。

[b]Struts2的标签,你有没有使用到Action中的内容呢?

你在jsp中是如何使用Struts2的标签的?贴出来看看![/b]

[quote]在jsp中使用了struts2的标签,为什么不能直接访问jsp页面[/quote]
这是什么意思?描述明确些。

[color=blue][b]你的配置Struts2拦截不到jsp页面,于是就不会有Action执行,所以不会有OGNL Context了。

(以下的前提都是 在jsp的头部引入了struts2的taglib)

这是如果jsp中含有struts2的标签,且标签使用到了OGNL Context中的值,可会解析错误。

如果包含struts2的标签,且标签没有使用到了OGNL Context中值,则解析正常,可以显示。[/b][/color]

请把问题描述清楚点

[quote]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


My JSP 'test.jsp' starting page





/s:form


就是因为使用了struts2的标签,如果我把struts2的标签都换掉,没有任何问题 [/quote]

[b] 这样的jsp可以直接访问的。如Struts2的标签要使用Action中的信息,那么jsp就不能直接被访问了[/b]

你加入struts标签的引用试试,就好了
[code="xml"]<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


My JSP 'test.jsp' starting page





/s:form

[/code]