1、怎么让jsp文件不能直接在浏览器被访问呢?
例如我有一个Web项目,在WebRoot路径下面有一个index.jsp,这个jsp直接在浏览器输入localhost:端口号:虚拟目录(项目名)/index.jsp这样就能被访问了,但是我不想它这样就被人在浏览器被访问到,可以这样把这个jsp放到WEB-INF 的目录下就不能在浏览器那里直接被访问到了。那么问题来了在WEB-INF怎么才能被访问到呢 - -,等我问老师。
2、jsp里的script标签有三个<%%>,<!%%>和<%=%>,其中<%!%>里面定义的变量是全局变量,而<%%>定义的变量是局部变量,但是在<%%>里面定义的变量在另一个<%%>可以访问到,这是为什么?直接看jsp编译后的java。首先我们要知道myeclipse内置的tomcat在哪里
我首先在jsp里创建了
<%! int ljs=0; %>
<% int ljs2=0; %>
<% int ljs3=0; %>
发现ljs2和ljs3都是在 _jspService这个方法里,而ljs是全局变量。
3、struts2标签里的listKey是指当前页面要提交到action的值,可以是map集合的key或者value,如果想提交map里的key,则这样表示listKey="key",如果想提交map里的value,则这样表示listKey
="value"。而listValue表示页面上显示的值,可以是map的key或者value,
如果想显示key,则这样表示listValue="key",如果想显示value,则这样表示listValue="value",因为listKey是提交到动作类里的,所以在其他jsp想显示从客户端获取的数据时,就得把listKey设置为value。
例如:
<s:checkboxlist name="sports" label="爱好运动"
list="#{1:'游泳',2:'网球',3:'跑步',4:'乒乓球',5:'羽毛球'}"
listKey="value" listValue="value" value="{1,3,5}"/>
这是一个复选框列表,其中list属性值是一个map,所以得用#,也可以不用map直接list就不用#,但是键值对的键不能自己设置,别看我把键设置为123你也可以设置为其他比如#{‘a’:‘游泳’,‘b’,‘网球‘},记得加单引号。复习一下java的集合,讲到哪里了。。。你看listKey的值为value,然后listValue的值也是value,这样它才会显示游泳,网球给你选不然会显示12345
然后最后面的value的值是1,3,5表示显示页面选中的复选框,而且你得前面的listkey的值是key,你才能选中,当时我们前面的listkey是value,所以图片上显示是没有选中,
<s:checkboxlist name="sports" label="爱好运动"
list="#{1:'游泳',2:'网球',3:'跑步',4:'乒乓球',5:'羽毛球'}"
listKey="value" listValue="value" value="{'游泳','跑步','羽毛球'}"/>
。
4、还有出现的其他一些问题,就是在用s:radio的时候忘记给他个name属性值,导致出错
The following has evaluated to null or missing:
==> parameters.id [in template "template/simple/radiomap.ftl" at line 67, column 8]
5、还有获取属性值用<s:property value=“xxx”>不要用s:label。