web.xml里面这么配置了一下,我struts的配置文件名叫struts-config.xml:<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>config</param-name>
<!-- 这里我有些不明白,struts-default.xml,struts-plugin.xml我在struts的源码里也没找到,我自己的工程里也没有,是看网上说要写上就写上了,不写上反tomcat启动的时候倒就报错了 -->
<param-value>struts-default.xml,struts-plugin.xml,struts-config.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts-config.xml里面是这么写的:<package name="struts2" extends="struts-default">
<action name="zzhjgTree" class="cn.zssoft.web.struts.action.zzhjgTreeAction">
</action>
</package>
zzhjgTreeAction里是这么写的:import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public class zzhjgTreeAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException{
//具体代码了,但是执行不到这里来
}}
不知道是哪里出了问题,实在不知道了,请各位高手帮忙解决下
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>config</param-name>
<!-- 这里我有些不明白,struts-default.xml,struts-plugin.xml我在struts的源码里也没找到,我自己的工程里也没有,是看网上说要写上就写上了,不写上反tomcat启动的时候倒就报错了 -->
<param-value>struts-default.xml,struts-plugin.xml,struts-config.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts-config.xml里面是这么写的:<package name="struts2" extends="struts-default">
<action name="zzhjgTree" class="cn.zssoft.web.struts.action.zzhjgTreeAction">
</action>
</package>
zzhjgTreeAction里是这么写的:import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public class zzhjgTreeAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException{
//具体代码了,但是执行不到这里来
}}
不知道是哪里出了问题,实在不知道了,请各位高手帮忙解决下
你是不是struts2的jar包没导入啊,
不知道你是什么问题,也没说什么错误
<init-param>
<param-name>config</param-name>
<!-- 这里我有些不明白,struts-default.xml,struts-plugin.xml我在struts的源码里也没找到,我自己的工程里也没有,是看网上说要写上就写上了,不写上反tomcat启动的时候倒就报错了 -->
<param-value>struts-default.xml,struts-plugin.xml,struts-config.xml</param-value>
</init-param>struts2的主配置文件的命名指定不是在这里的,默认的主配置文件是struts.xml如果你要指定struts2配置文件的话,要在一个.properties文件中修改,具体名字忘了。struts-config.xml应该是struts1中的配置文件的名字吧。只需把其名称改为struts.xml即可
Struts2的配置文件名 是在struts2源码里面就写死了是struts.xml,不能像struts1一样去配置我们的配置文件名称.! 只能叫struts.xml,而且必须放在classpath根目录下.!
不要把struts2当struts1用, 毕竟两个框架就不是一个东西.!
HttpServletRequest request, HttpServletResponse response) throws IOException{
//具体代码了,但是执行不到这里来
}以上是struts1的方法签名格式。struts2如下:public String execute() throws Exception {
return SUCCESS;
}
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
private int pageid; 并添加get/set方法, Struts2会自动给你填充请求参数的.!这个不用你操心,你只需要在action中设置与请求参数name一样的属性就可以
(1)web.xml:必需的配置文件, 位于/WEB-INF/,Web部署描述符, 包含所有必需的框架组件;
(2)struts.xml:可选的配置文件,位于/WEB-INF /classes/, 主配置文件,包含result、action映射、拦截器等等;
(3)struts.properties:可选的properties文件,位于 /WEB-INF/classes/,包含框架属性信息;
(4)struts-default.xml:可选的配置文件,位于/WEB- INF/lib/struts2-core.jar,由Struts提供的默认配置文件;
(5)struts-default.vm:可选的配置文件,位于/WEB-INF /classes/,由velocity.properties引用的默认宏;
(6)struts-XXX-plugin.xml:位于每一个插件JAR文件的根目录下,为插件的可选配置文件,格式同struts.xml;
(7)velocity.properties:位于/WEB-INF /classes/,用以覆盖默认的Velocity配置。
Struts 2加载配置文件的顺序如下:
(1)struts-default.xml (捆绑在Core JAR中)
(2)struts-XXX-plugin.xml (在其它JAR包中,可以有多个)
(3)struts.xml (由应用提供),该文件中可以包含其他的多个文件。
在部署描述符中只需要进行如下配置:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
但在Struts 2.1.3版本后,建议使用StrutsPrepareAndExecuteFilter。
Struts2构建在XWork的基础之上,有效地降低了组件间的耦合性,请求参数的访问可以通过类似于JavaBean property的方式进行,楼上正解。呵呵。
现在不知道怎么把这个jsonStr返回
我页面loader:new Ext.tree.TreeLoader({dataUrl:"zzhjgTree.action"})这样写的,只想得到字符串
action里不知道怎么返回
struts。xml里面不知道应该怎么配置
<action name="zzhjgTree" class="cn.web.struts.action.zzhjgTreeAction">
</action>
你的package继承json-default
<action name="" class="">
<result name="xxx" type="json">
<param name="root">OGNL取你要返回的对象</param>
</result>
</action>
当然 LZ可以用这种
action中定义StringBufferInputStream inputName类型的属性,添加get/set
你就返回一个json串就可以了
<result name="xxx" type="stream">
<param name="contentType">text/plain</param>
<param name="inputName">inputName</param>
</result>
还有一种:
ServletActionContext.getResponse().getWriter().print("{.....}")也行!
你看下这个类
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 定义Action -->
<package name="sosee" extends="struts-default"> <!-- 定义Login的Action -->
<action name="add" class="com.sosee.action.AddPersonAndSon"> <!-- 定义处理结果与资源之间的映射关系 -->
<result name="success">/welcome.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
上边的是放在src目录下的struts.xml配置格式
下边是web.xml文件里边的配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
加入jar文件,如果你用的是struts2的话,这个配置不会有错。
jsonplugin-0.31.jar我已经导进去了
zzhjgTreeAction:public class zzhjgTreeAction extends ActionSupport {
public String execute() throws IOException{
json = XXX;//已经拼好了json格式的数据放在这里,不知道咋办
return SUCCESS;
}
}struts.xml:<package name="json" extends="json-default">
<action name="zzhjgTree" class="cn.zssoft.web.struts.action.zzhjgTreeAction">
<result type="json">
<param name="includeProperties">success</param>
</result>
</action>
</package>页面js:
loader:new Ext.tree.TreeLoader({dataUrl:"zzhjgTree.action"})就是这样了,不知道哪里不合适,页面没有数据返回
result里面这样写!
<param name="root">json</param>
<result name="jsonStr" type="json">
<param name="root">jsonStr</param>
</result>,总觉得zzhjgTreeAction里面怪怪的,好像联系不上
我在里面添了个private String jsonStr;
添了get set方法
public String execute() throws IOException{
jsonStr = json.toString();
return jsonStr;
}
还是不行,没搞清楚原理,着急用,反倒费了事了
还请大家再帮忙看看
我都说了要你好好看我上面给你的配置.!
都仔细看过了,,有问题再发吧.! 别要人一个劲的重复一个答案阿.!普通文本 返回一个StringBufferInputStream.! stream的视图是专门做返回普通字符串的ajax和文件下载的.! 视图类型都说明了要stream,你给String当然没反应.!