Struts
- struts.xml文件路径是在src根目录下
- 如地址栏路径中是在stu包下,则相关的action也要放在stu包下
- 有缓存,查询查不到数据库中最新的值,所以改库后查询,查出的值不是最新的
- entity中Date属性要定义成java.sql.Date
- where子句动态SQL写法
<select id="selectById" resultMap="empMap"> <include refid="SELECT_SQL6"/> <where> emp.status=1 <if test="sid!=null"> and emp.id like '%'||#{sid}||'%' </if> <if test="lowSal!=null"> and emp.salary >=#{lowSal} </if> <if test="highSal!=null"> and emp.salary <=#{highSal} </if> </where> </select>
- 页面中value=后面一定不能加换行,空格等符号
- 有链接的地方&前不能换行
1、分页样式设置
<s:iterator begin="1" end="totalPage" var="i">
<s:if test="currentPage==#i">
<s:property />
</s:if>
<s:else>
<a href="${ pageContext.request.contextPath }/emp/splitPage?currentPage=<s:property />"
><s:property /></a>
</s:else>
</s:iterator>
2、显示所有部门
<select name="student.team_id">
<s:iterator value="teams">
<option value=<s:property value="team_id"/>>
<s:property value="team_name"/>
</option>
</s:iterator>
</select>
3、修改页显示已选部门
<select name="student.team_id">
<s:iterator value="teams" var="team">
<option value=<s:property value="team_id"/>
<s:if test="student.team.team_name==#team.team_name">
selected='selected'
</s:if>
>
<s:property value="team_name"/>
</option>
</s:iterator>
</select>
4、列表页性别翻译
<s:if test='gender=="f"'>女</s:if>
<s:else>男</s:else>
5、修改页显示已选性别
<input type="radio" name="student.gender" value="m"
<s:if test='student.gender=="m"'>checked='checked'</s:if>/>男
<input type="radio" name="student.gender" value="f"
<s:if test='student.gender=="f"'>checked='checked'</s:if>/>女
js
1. 表单验证时,匿名函数返回值需要加if-else判断,保证每个分支都有返回值
2. 动态表格批量删除方法
function remove(){
var tbBoxs = document.getElementsByName('tbBox');
for(var i=0,flag=true;i<tbBoxs.length;flag?i++:i){
if(tbBoxs[i].checked){
var tr = tbBoxs[i].parentNode.parentNode;
// 获取tbody对象 | tbody是行的父节点
var tb = tr.parentNode;
// 移除当前行
tb.removeChild(tr);
flag=false;
}
else flag=true;
}
}
Ajax
1. js动态值传给action
var ori = $('#oriInput').val();
xhr.send('oriPwd='+ori);
2. 注意用成员变量收参时,别忘加get-set方法
3. action方法中输出字符不要有换行
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
if(ckOriPwd){
out.print("ok");
}
else{
out.print("no");
}
return null;
4. 上传文件回显,注意当前页面与upload文件相对路径,可以先在本地upload上试,路径对了再传
MyEclipse
1、复制项目时,右键新项目,选择Properties,输入WEB,将Web context-root改成新项目名称
Oracle
1、查询1997年每个月入职的员工数,入职时间hire_date
select to_char(hire_date,'mm'),count(*) from employees
where to_char(hire_date,'yyyy') = '1997'
group by to_char(hire_date,'mm');
2、查询工资排名3-5的员工id及其姓名
select * from
(select t1.*,rownum r
from (select * from employees order by salary desc) t1 )
where r>=3 and r <=5;
3、between and效率不如>= and <=
4、导入数据:cmd-sqlplus-连接数据库,start/@后拖入sql脚本。
5、空值既不在where XXX=xxx的查询结果集中,也不在where XXX!=xxx的查询结果集中,只存在于where XXX is null的结果集中。
java
1、判断集合为空
if(queryByCategoryId.isEmpty()){
products = queryByCategoryId;
}
else {
products = splitPage(queryByCategoryId);
}