换Resin以后Struts出现了一些问题。望高手指点:

web.xml里面action映射设置成带斜杠的"/*.do",页面里的

<html:link action="/myaction">XXX</html:link>
就不能用了。解析成html以后变成了
<a href="/context">XXX</a>
,而正确的结果应该是
<a href="/context/mysaction.do">XXX</a>
<html:form action="myaction">
也有同样的问题。

如果在web.xml里面action映射设置成不带斜杠的"*.do",则resin就不能人出来,报404错误。

以前在Tomcat里面没碰到过这种问题。
有没有人在resin里面用Struts的时候碰到过这个问题?如何解决啊?

解决了刚才的问题:
在Struts的RequestUtils.java的方法"public static String getActionMappingURL(String action, PageContext pageContext)"的一段部分改称


if (servletMapping.startsWith("*.")) {
value.append(actionMapping);
value.append(servletMapping.substring(1));
// add by leema
} else if (servletMapping.startsWith(
"/*.")) {
value.append(actionMapping);
value.append(servletMapping.substring(2));
// end of add
} else if (servletMapping.endsWith(
"/*")) {
value.append(servletMapping.substring(0, servletMapping.length() - 2));
value.append(actionMapping);
} else if (servletMapping.equals(
"/")) {
value.append(actionMapping);
}

然后在web.xml里面还是用"/*.do"。
看来解释web.xml配置文件的时候tomcat和resin还是有些区别的。

可以用最新的struts试试

都说resin的中文支持比Tomcat好,不过我这几天可被resin的中文问题弄得焦头烂额。
request.setCharacterEncoding("GBK");和<%@ page language="java" pageEncoding="GBK" %>都设置过了,数据库连接也用useUnicode=true,characterEncoding=GBK。
这样,JSP文件里面的程序输出的中文总是乱麻。如:<%="会员登陆"%>,改成<%=new String("会员登陆".getBytes(), "ISO-8859-1")%>就没有问题。我总不能所有的输出都这样该啊,工作量太大了,而且万一以后要换别的服务器,岂不是还要改过来。
不知道有没有更简单的方法。resin.conf里面我设置过很多参数都不起作用。
郁闷啊!你们没有碰到过这个问题吗?

刚刚忘了转换HTML标签,再发一次。
-----------------------------------------------------------
request.setCharacterEncoding("GBK");和<%@ page language="java" pageEncoding="GBK" %>都设置过了,数据库连接也用useUnicode=true,characterEncoding=GBK。
这样,JSP文件里面的程序输出的中文总是乱麻。如:<%="会员登陆"%>,改成<%=new String("会员登陆".getBytes(), "ISO-8859-1")%>就没有问题。我总不能所有的输出都这样该啊,工作量太大了,而且万一以后要换别的服务器,岂不是还要改过来。
不知道有没有更简单的方法。resin.conf里面我设置过很多参数都不起作用。
郁闷啊!你们没有碰到过这个问题吗?

用过滤器不是方便多了吗?