
首先,我想告诉你,struts2是业务逻辑层的框架,怎么会用jdbc连接数据库?
连接数据库的是持久化层,也就是hibernate。
在纠正下,是连接池,不是数据池。。。。
hibernate可以配置数据库连接池,使用JNDI,JNDI就是java命名和目录接口。换句话说,你配置好一个连接池,通过命名和接口可以使用。就这么个意思。
您好,在struts2中,DispatchFilter已经调用过requestgetParameter()的方法,所以不能使用requestgetInputStream() 或者 requestgetReader()获得数据 。
可以通过requestgetParameterMap()的方式获得key,这个key就是你需要的字符流。
j2ee 14文档中对于reuqestgetParameter()的解释,如果调用了requestgetParameter()就不能使用requestgetInputStream() 或者 requestgetReader()
如果调用了 requestgetInputStream() 或者 requestgetReader(),也就不能通过reqeustgetParameter()获得数据了,这2类方法相互影响
以下是j2ee 14文档的解释,我英文不好,不知道理解的意思是否正确
>
struts2 的action就相当于一个servlet 在jsp+servlet+javabean的模式上,我们是在servlet里面调用dao的方法对数据库进行 *** 作,然后返回结果,再把结果放到request,session 传到页面上的
在这里 struts2也和它差不多 它在action里面调用dao来 *** 作数据库当然如果在正规的项目中会有一个service层,在action里面 *** 作service,然后再在service里面 *** 作dao来 *** 作数据库
struts2里面好的一点就是 当你把action里面的属性定义成全局变量的时候,并且给它get,set方法的时候,你就可以直接在页面上面调用那个属性了在action里面获取到数据库的值,把它赋值给属性,然后页面上就可以直接访问那个属性的值了呀
<data sources>
<data source key= DataSource type= apache mons dbcp BasicDataSource >
<set property property= driverClassName value= mysql jdbc Driver />
<set property property= url value= jdbc:mysql://localhost: /struts _login />
<set property property= username value= root />
<set property property= password value= ihpp />
</data source>
</data sources>
配置了数据源后 就可以在Action中访问数据源了
代码如下所示
//获取Servlet上下文对象
ServletContext ctx = servlet getServletContext();
//获得数据源
DataSource ds = (DataSource) ctx getAttribute( DataSource );
//获取数据库的连接
Connection conn = ds getConnection();
B 修改Action
Action将取得数据源 得到一个数据库的连接 把页面传近来的用户名和密码 通过jdbc与数据库进行对比 如果存在转到 success jsp 并显示其名称 否则到错误页面
具体实现代码如下所示
public class LoginAction extends Action {
public ActionForward execute(ActionMapping actionMapping
ActionForm actionForm >
通过action 链接去访问
比方说你的链接是 listdo action应该会返回对应的List
然后再jsp上就可以通过jstl标签获得,赋值给js变量
或者通过struts标签获得 都是可以的
类似 <s:property value="OGNL表达式"/> 这样的
在js里可以直接这样写
var data=<s:property value="OGNL表达式"/>
再简单点的就是在onload方法中 用ajax访问 获得相关内容
用你想用的方式- -
jsp获得action的数据的方式有很多~
其中获得属性的(有getter和setter)
${templatetitle[1]}<br><s:property value="templatetitle[0]"/><br>
<s:property value="#requesttemplatetitle[2]"/> <br>
这3种都可以 建议第二种
当然要求action里有template的getter/setter,
template里也要有title的getter/setter
但注意一点,虽然3种都能获得属性的值
但只有第二种方式是确定能获得属性而不是其他存储的同名值的
但只有第二种方式是确定能获得属性而不是其他存储的同名值的
但只有第二种方式是确定能获得属性而不是其他存储的同名值的
为什么这么说呢,第一种方式简直是万能的
可以获得 request > 属性 > ActionContext > session> application 里所存储的数据,
也就是你只要存储在任意一个里面, 不管request,还是session, 或者页面里你定义个变量- -
通过 ${name} 都能得到
但先后顺序就像上面所写的, 优先得request, 其次属性 依此类推
第二种方式,也可以取多种类型的存储
但优先取 属性 , 其次是ActionContext 所以可以确保能取属性
第三种方式
优先取request, 其次是属性, 其次是ActionContext
PS:补充一点 用struts标签,需要线taglib:
<%@taglib prefix="s" uri="/struts-tags" %>PS2:再补充一点, 具体有几种引用action数据的方法,可以看这
>
PS3:再补充一点点, struts2快要老死了, 建议SpringMVC
以上就是关于struts2 jdbc 链接数据库全部的内容,包括:struts2 jdbc 链接数据库、请教struts2 如何拿到request.getReader的值、STRUTS2 action 查询数据库显示到jsp页面上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)