WARN Form:308 - No configuration found for the specified action: 'loginProducer.action' in namespac

WARN Form:308 - No configuration found for the specified action: 'loginProducer.action' in namespac,第1张

警告信息

警告: No configuration found for the specified action: '/myNameSpace/login.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.

struts.xml配置信息(部分)

<package name="packageName" extends="struts-default" namespace="/myNameSpace">

<action name="login" class="com.jato.srvclink.test.login.LoginAction" method="login">

jsp页面配置信息(部分)

<s:form action="/myNameSpace/login.action">

思考:没有在''的namespace中发现指定的action '/myNameSpace/login.action'

答疑:因为配置的struts2标签并未指定namespace属性。所以struts2会默认从根命名空间"/"搜索action串'/myNameSpace/login.action',如果搜索不到将进入默认命名空间''搜索action请求串,在默认命名空间中是肯定找不到我们定义的action的,所以,struts2抛出一个警告信息。

但是为什么我们没有填写namespace,我们的请求也可以正常访问呢?

我们来看一下解析后的html

查看源码得到的html(部分)

<form id="login" onsubmit="return true" action="/srvclink/myNameSpace/login.action" method="post">

我们看到form提交的action串是准确的url请求,action串确实是/srvclin(应用根)/myNameSpace(命名空间)/login.action。

命名空间中找不到action定义,并不意味着这个action真的不存在,只是我们的代码有问题而已。还有一点是我们在jsp页面的action请求中手动的加入了.action后缀。事实上struts2会自动追加.action的,因为我们并没有合法的使用struts2的标签,所以struts2这里并没有给我们追加.action,解析后的代码中存在的.action,完全是我们手动在jsp页面填写的,有疑问的网友可以不手动添加查看html。

我们修改我们的程序代码

jsp页面配置信息(部分)修改后加入namespace属性,修改action属性值为/login.action

<s:form action="/login.action" namespace="/myNameSpace">

请求页面后,大家很失望吧?警告依然存在。但是我们看一下警告信息。

警告信息:

警告: No configuration found for the specified action: '/login.action' in namespace: '/myNameSpace'. Form action defaulting to 'action' attribute's literal value.

没有在'/myNameSpace'的namespace中发现指定的action '/login.action'

毫无疑问,这里的警告和第一次的警告信息截然不同。我们现在存在命名空间,'/myNameSpace'能够被struts2检索到,并不是开始的''。那问题的关键在哪里呢?

在namespace中没有发现指定的action '/login.action' ???

我们来看一下struts.xml中的配置:

struts.xml配置信息(部分)

<package name="packageName" extends="struts-default" namespace="/myNameSpace">

<action name="login" class="com.jato.srvclink.test.login.LoginAction" method="login">

是的,我们'/myNameSpace'命名空间下,只有action名字为'login'的定义,并没有所谓的 '/login.action' 定义,所以struts2的警告并未错。如果大家对这个抱有怀疑,可以修改action的名字'login'为‘/longin.action’

<action name="/login.action" class="com.jato.srvclink.test.login.LoginAction" method="login">

请求页面时你会发现不在报警告信息,原因很简单。因为在命名空间为'myNameSpace'下确实存在命名为'/login.action'的action。

我们再次修改配置文件

jsp页面配置信息(部分)修改后action属性值为longin

<s:form action="login" namespace="/myNameSpace">

请求页面时,我们发现不再有警告信息了。

如果你有足够细心,我想你应该可以彻底的明白为什么struts2会报警了吧?你也应该明白了使用struts2标签action中添加/线后请求反而报错的原因了。

建立access的数据库news,还有表news,表的字段(id,title),id唯一,输入数据保存,用下面代码可查询,可分页

-----------------------下面保存为search.asp--------------------------

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<title>文件</title>

</head>

<body bgcolor="#ffffff">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<script>

function btn_ck_bh_Click()

{

var cx = document.form1.cxsj.value

form1.action ="search.asp?cx="+cx

}

</script>

<table border="1" cellspacing="0" bgcolor="#F0F8FF" bordercolorlight="#4DA6FF" bordercolordark="#ECF5FF" width="88%" style="word-break:break-all">

<tr>

<td width="778" align="center" colspan="7">

<form method="POST" name="form1" action=search.asp>

<p>输入搜索内容:<input type="text" name="cxsj" size="20"><input type="submit" value="提交" name="B1" LANGUAGE="javascript" onclick="btn_ck_bh_Click()">

<input type="reset" value="重写" name="B2"></p>

</form>

</td>

</tr>

</table>

<table border="1" cellspacing="0" bgcolor="#F0F8FF" bordercolorlight="#4DA6FF" bordercolordark="#ECF5FF" width="88%" style="word-break:break-all">

<tr>

<td width="8%" align="center"><strong><font color="#0080C0">ID 号</font></strong></td>

<td width="58%" align="center"><strong><font color="#0080C0">标 题</font></strong></td>

<td width="8%" align="center"><strong><font color="#0080C0">修 改</font></strong></td>

<td width="8%" align="center"><strong><font color="#0080C0">删 除</font></strong></td>

</tr>

<%

'数据库查询

'获得搜索内容

cx = request("cx")

dim pageCount

'把page转换成整数

page = cint(request("page"))

set conn=server.createobject("adodb.connection")'

set rs=server.createobject("adodb.recordset")

conn.open "DBQ=" &server.mappath("./news.mdb") &"DefaultDir=DRIVER={Microsoft Access Driver (*.mdb)}"

' 获取产品的名字记录集(从 news表中)

if cx <>"" then

sql = "select * from news where title like '%"&cx&"%' order by id desc"

else

sql ="select * from news order by id desc"

end if

rs.open sql,conn,3,3

'如果没有数据记录

if rs.bof then

errmsg=errmsg+"<br>"+"<li>"+keyword+"没有记录,请返回!!"

response.write errmsg

response.end

end if

' 设置记录集在每页的总行数,也就是 PageSize属性

RS.PageSize=40

'把rs.pageCount转换成整数和page才能作比较

pageCount = cint(rs.pageCount)

' 设置当前的页号( AbsolutePage属性)

if page = 0 then

page =1

end if

RS.AbsolutePage = page

x=1

' 显示当前页中的所有记录( PageSize中设置的行数)

WHILE NOT RS.EOF AND NumRows<RS.PageSize

%>

<tr onmouseover="this.bgColor='#99ccff'" onmouseout="this.bgColor=''">

<td width="8%"><p align="center"><%=rs("id")%></td>

<td width="58%"><a href="view.asp?id=<%=rs("id")%>" target="_blank"><%=rs("title")%></a></td>

<td width="8%" align="center"><a href="edit.asp?id="<%=rs("id")%>>修 改</a></td>

<td width="8%" align="center"><a href="delet.asp?id="<%=rs("id")%>>删 除</a></td>

</tr>

<%RS.MoveNext

NumRows=NumRows+1

WEND%>

<tr onmouseover="this.bgColor='#99ccff'" onmouseout="this.bgColor=''">

<td width="105%" align="center" colspan="6"></td></tr>

<tr>

<td width="105%" align="center" colspan="6">

<p align="center"><FONT color=#333333>共<%=PageCount%>页 第<%=page%>页★

<%if page=1 then%>首页<%end if%>

<%if page>1 then%>

<A HREF="search.asp?page=1&cx=<%=cx%>">首页</A>

<%end if%>★

<%if page>1 then%><A HREF="search.asp?page=<%=page-1%>&cx=<%=cx%>"><%end if%>上一页</a>

<%

dim pagewhere

dim p

p = 1

'把pagewhere转换成整数

'pagewhere = cint(request("pagewhere"))

pagewhere = pageCount

if pagewhere>0 then

for p=1 to pagewhere

if p <>page then%>

<A HREF="search.asp?page=<%=p%>&cx=<%=cx%>"><%=p%></a>

<%end if

if p =page then%>

<%=p%>

<% end if

next

end if%>

<%if page <PageCount then%>

<A HREF="search.asp?page=<%=page+1%>&cx=<%=cx%>">

<%end if %>下一页</A>★

<%if page=PageCount then%>尾页

<%end if%>

<%if page<PageCount then%>

<A HREF="search.asp?page=<%=PageCount%>&cx=<%=cx%>">尾页</A>

<%end if%>

</p></FONT></td></tr><tr>

<td width="105%" align="center" colspan="6">搜索内容:<%=cx%></td>

</tr>

</table></center></div>

</body></html>

<%

rs.close

Set rs=nothing

conn.close

set conn=nothing

%>


欢迎分享,转载请注明来源:优选云

原文地址:https://54852.com/hy/981189.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-30
下一篇2023-07-30

随机推荐

  • 佰草集太极啵啵精华水怎么样佰草集太极啵啵精华水好用吗

    佰草集太极啵啵精华水主打深层修护补水清爽保湿,那么佰草集太极啵啵精华水怎么样?佰草集太极啵啵精华水好用吗?下面我将为你带来佰草集太极啵啵精华水最详细的介绍和分析,使你拥有愉悦的购物体验,继续关注此站点,并有许多福利和惊喜等待着你~

    2023-12-14
    25200
  • 十大最好粉底液推荐

    我是一个小仙女,对于粉底液用过许多。很多人想要提亮肤色,出门有气质,都会化一些淡妆来修饰自己的肌肤,其中粉底液来打底是少不了的,而选择适合自己的一款粉底液是很重要的,市场上有很多的粉底液品牌比较出名,大家可以根据自己的肤色来选择。下面我推荐

    2023-12-14
    25000
  • 平价精华液有哪些 好用平价精华液推荐

    精华液是女人保养皮肤的根本,从最基础的保湿到抗老,只有坚持用才能拥有一个人人都羡慕的素颜好底子。所以今天我就给大家分享几款平价又好用的精华液,一起来看看吧。1、悦诗风吟小绿瓶精华参考价格:180元三重的绿茶乳酸菌加透明质酸和维生素B5的搭配

    2023-12-14
    32100
  • 涂防晒闷痘了怎么办

    涂防晒霜长痘怎么办大家知道防晒霜可以怎么用呢,防晒霜会不会导致长痘呢,长痘能不能用防晒霜呢,防晒霜有哪些好处呢,今天就一起来看看吧!yestone_D54035407_XXLjpg涂防晒霜会长痘吗长了痘痘的患者需要减少对隔离霜和防晒霜的使用

    2023-12-14
    21900
  • 什么颜色好看

    牛油果绿色:接近奶白,是非常浅的一种绿色调,对于这么温和又低饱和度的彩色系,自然是不挑肤色。水晶玫瑰粉红色:粉色,是每一个女生藏在心底的颜色,少女时热爱的粉色的甜美可爱,成熟时,又热爱粉色的从容淡然,仿佛只要在衣服中沾染上一点粉色的仙气,一

    2023-12-14
    30500
  • 世界品牌护肤品前十名

    一、法国Lancome(兰蔻)始于1935年法国,欧莱雅集团旗下,全球高端化妆品品牌,含苞欲放的玫瑰被誉为品牌标记,兰蔻系列香水世界闻名,兰蔻化妆品更是高端女性代表性化妆品。二、美国Estee Lauder(雅诗兰黛)创立于1946年美国,

    2023-12-14
    21300
  • 郑州最大的化妆品批发代理商

    郑州最大的化妆品批发代理商?郑州最大的化妆品批发代理商如下:第一,网上找化妆品厂家如果知道具体想要的化妆品厂家,那么直接在网络上搜索化妆品厂家名称看看。部分厂家会有自己的网站,那就可以找到****。而没有具体目标的话,一些厂家也会在其他网站

    2023-12-14
    21200
  • 关于娇生和强生润肤乳

    在台湾可能叫娇生,不过在中国大陆统一叫强生,你用的那款是强生美肌恒日倍润润肤乳,是专门针对女性朋友娇嫩润滑的肌肤所出品的,用了感觉挺好的,在超市卖场里的化妆品货架处都有销售,还有红色外包装的强生美肌恒日水嫩润肤乳,紫色外瓶的悠然舒缓润肤乳,

    2023-12-13
    22400
  • 腻一点文言文解释

    1 “复”在古文(文言文)中的几种解释 fù①返回;回还。《与陈伯之书》:“不远而~,先典攸高。”《信陵君窃符求赵》:“以是知公子恨之~返也。”②回复;回答。《信陵君窃符求赵》:“公子往,数请之,朱亥故不~谢。”《送东阳马生序》

    2023-12-13
    38200

发表评论

登录后才能评论
保存