SSH2,怎样才能不触发Action而直接读出数据

yiyuanhong 2010-11-16 03:27:43
原来读出数据都是通过点击触发某个Action,然后从数据库里返回list,再在jsp页面上显示。
但是因为现在都做一个主页,希望能一打开主页的时候就可以显示一些数据,这就要求不能触发Action了。
由于从来没做过类似这样的功能,所以犯迷糊了。
敢问哪位大侠做过类似的功能,能指导下,给点思路吗?
如果有实例请发我邮箱:yiyuanhong@yahoo.cn
我做的是SSH2的。
...全文
263 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyuanhong 2010-11-17
  • 打赏
  • 举报
回复
感谢各位大神帮忙,做个系统真是不容易啊。分不多,大家不要见外了。。。
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
今天运气真好,提的问题把这么多高手都引出来了,好像解决这么问题的方法有好多种啊,应该好好研究,能弄出了小专题来就好了,哈哈
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 magicluo 的回复:]
这个很简单的

index.jsp 中这样


HTML code

<body>
<jsp:forward page="showIndex.action"></jsp:forward>
</body



showIndex.action 是首页的action ,执行后 实际跳转到action 对应的视图

所以经过两次服务器端的转发,地址栏还是:ht……
[/Quote]
你的方法蛮简单的,至少能够把数据转出来了。谢谢了
magicluo 2010-11-16
  • 打赏
  • 举报
回复
这个很简单的

index.jsp 中这样


<body>
<jsp:forward page="showIndex.action"></jsp:forward>
</body


showIndex.action 是首页的action ,执行后 实际跳转到action 对应的视图

所以经过两次服务器端的转发,地址栏还是:http://localhost/index.jsp

而且如果你的web.xml中的welcome file 中设置 index.jsp 作为欢迎页
那么 http://localhost 就直接访问的是showIndex.action执行后的视图页面.

记得web.xml中设置如下

<!-- struts2的过滤器 -->
<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>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

jayqean 2010-11-16
  • 打赏
  • 举报
回复
这问题好处理呀
或者LZ你弄自定义标签呗,主页里放的是自定义的标签,访问标签的时候再去doTag()处理,访问数据库
jayqean 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 yiyuanhong 的回复:]
原来读出数据都是通过点击触发某个Action,然后从数据库里返回list,再在jsp页面上显示。
但是因为现在都做一个主页,希望能一打开主页的时候就可以显示一些数据,这就要求不能触发Action了。
由于从来没做过类似这样的功能,所以犯迷糊了。
敢问哪位大侠做过类似的功能,能指导下,给点思路吗?
如果有实例请发我邮箱:yiyuanhong@yahoo.cn
我做的是SSH2的。
[/Quote]
LZ也可以弄一servlet 让服务器启动的时候就加载这个servlet
这个servlet 类里你将需要的数据都取出来呗,访问首页就访问这个servlet,就能达到目的
还可以在servlet里将页面进行静态化
http://blog.csdn.net/jayqean/archive/2010/04/18/5499235.aspx
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
从下午弄到现在,悲剧了。查了好多资料,但是说法不一。这个真是郁闷
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 doop1120 的回复:]
你在web.xml里配置

XML code
<welcome-file-list>
<welcome-file>struts2</welcome-file>
</welcome-file-list>

把欢迎页面换成struts2!
struts2的配置文件里面加入默认的action:

Java code
<default-action-re……
[/Quote]
这段代码研究了下下,感觉对struts配置那段代码不理解,而且出错页正是在那个位置。
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
还是有实例比较给力啊,先研究9L的代码先了。嘻嘻
ousyuryu 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hrbuzdj0000 的回复:]

你的主页就是一个action不就得了
[/Quote]

就是这个意思
bijanen19861113 2010-11-16
  • 打赏
  • 举报
回复
恩,看你帖子提到的“原来读出数据都是通过点击触发某个Action”,如果不想这样,就用楼上所说的用ajax技术。当你访问这个页面的时候,它会自动的执行这个action。然后把数据读取出来
xiaoair 2010-11-16
  • 打赏
  • 举报
回复
好厉害啊一只菜鸟表示鸭梨很大
屌丝团 2010-11-16
  • 打赏
  • 举报
回复
可以用ajax实现的。
haozi187 2010-11-16
  • 打赏
  • 举报
回复
我这有两个方法·不知道能不能帮你:
1.把主页直接设置成Action,就像楼上的朋友这样
2.用在页面加载时用js请求ajax,然后用js写入页面。
3.用js调用dwr(跟2同理).
Eclipse_80 2010-11-16
  • 打赏
  • 举报
回复
你在web.xml里配置
<welcome-file-list>
<welcome-file>struts2</welcome-file>
</welcome-file-list>

把欢迎页面换成struts2!
struts2的配置文件里面加入默认的action:
<default-action-ref name="index" />
<action name="index" class="com.action.IndexAction">
<result name="success">/index.jsp</result>
</action>

这下再写个IndexAction(继承与Struts2的ActionSupport),重写Struts2的execute()方法,方法里面把需要的list拿到放在容器中!
当每次访问网站的时候,web.xml就会交给welcome-file处理,如果没输入任何action名字就会交给IndexAction去处理!
web.xml

<filter>
<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>

<welcome-file-list>
<welcome-file>struts2</welcome-file>
</welcome-file-list>

struts.xml

<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<action name="index" class="com.envch.action.IndexAction">
<result name="success">/index.jsp</result>
</action>
</package>

IndexAction.java:

package com.envch.action;

import java.util.ArrayList;
import java.util.List;

import com.envch.model.News;
import com.envch.model.Product;
import com.envch.model.Ptype;
import com.envch.service.CompanyService;
import com.envch.service.NewsService;
import com.envch.service.ProductService;
import com.envch.util.PageVo;
import com.envch.util.SearchVo;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class IndexAction extends ActionSupport {
private NewsService ns = new NewsService();
private ProductService ps = new ProductService();
private CompanyService cs = new CompanyService();
private PageVo pageVo = new PageVo();
private SearchVo sv = new SearchVo();
private News news;

public News getNews() {
return news;
}

public void setNews(News news) {
this.news = news;
}

public PageVo getPageVo() {
return pageVo;
}

public void setPageVo(PageVo pageVo) {
this.pageVo = pageVo;
}

public SearchVo getSv() {
return sv;
}

public void setSv(SearchVo sv) {
this.sv = sv;
}

@Override
//重写struts的execute
public String execute() throws Exception {
List productList = ps.getProductList(pageVo, sv);
Product product = new Product();
List ptypeList = new ArrayList();
Ptype p = new Ptype();
if(productList != null){
for(int i=0; i<productList.size(); i++){
product = (Product)productList.get(i);
p = ps.getPtype(product.getPtype());
ptypeList.add(p);
}
}
//拿到你需要的List
ActionContext.getContext().put("newsList", ns.getNews(pageVo, sv));
ActionContext.getContext().put("productList", productList);
ActionContext.getContext().put("plist", ptypeList);
ActionContext.getContext().put("companyList", cs.getCompanyList());
return SUCCESS;
}

}

yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zcy9979420 的回复:]
主页的连接地址直接用action 不就OK了
[/Quote]
我原来的action是返回一个字符串,然后去struts文件找对应的页面,转入那个页面。
那现在这样我等于我action里的方法要重新写过?然后重定向回主页?
哎。。。我都绕糊涂了。
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhu6100441 的回复:]
既然你已经使用SSH了,那分层你应该理解,页面只做显示,数据的访问就不能放在这里了。配置struts的时候,你可以吧result里面配置成查询数据的方法。这样就不用再去手动调用action了。
[/Quote]
这个倒是完全没接触过的方法,不知道怎么弄啊?谁能给实例啊,呵呵
zcy9979420 2010-11-16
  • 打赏
  • 举报
回复
主页的连接地址直接用action 不就OK了
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hrbuzdj0000 的回复:]
你的主页就是一个action不就得了
[/Quote]
也能说的具体点吗?给点实例比较好
yiyuanhong 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 a30501139 的回复:]
还没打开的时候就获取到嘛,获取到了再打开好了。
[/Quote]
能具体点吗?问题是如何获取呢?
加载更多回复(3)

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧