qq_金风未动蝉先觉_0
java.lang.IllegalArgumentException: id to load is required for loading,报错信息是这样的
慕工程4835570
car
你可以在struts.properties文件中配置一下看行不行
qq_诺霖_0
XKing丶QueenRI
慕粉1847254372
Action.java
public String update(){
user=Userservice.findByid(User.getUid());
return "update_success",
}
serviceImpl.java
public User findByid(integer uid){
return UserDao.findByid(uid);
}
userdaoImpl.java
public User findByid(integer uid){
return this.getHibernateTemplate().get(User.class,uid);
}
struts.xml
<action name="" class="" method="">
<result name="update_success">update.jsp</result>
灰灰也很可爱3561554
<textarea rows="5" cols="50" name ="department.ddesc"><s:property value="%{model.ddesc}" />
可以这么改。。
宝慕林0707671
建立数据库的时候字符集选择utf-8,连接数据库的url这样写jdbc:mysql://localhost:3306/sshdemo?useUnicode=true&characterEncoding=UTF-8"
杨sir2
啥意思?
一个动态,一个静态
我爱小七
...
<s:hidden name="departId" value="%{model.departId}"/>
...
<td>部门名称:</td>
<td><input type="text" name="departName" value="${model.departName}" size="30" placeholder="请输入部门名称"/></td>
...
<td valign="top">部门介绍:</td>
<td><textarea cols="50" name="departDesc" rows="5" placeholder="请输入部门介绍"><s:property value="%{model.departDesc}" /></textarea></td>
...
<!-- 我的是区分写的,在<s: />标签内,我使用的是%,在非<s: />标签内,我使用的是$。 -->
<!-- 还有一个就是在<textarea />标签内,使用value属性,无法赋值。所以我使用之前的<s:property />标签 -->
<!-- 可以参考一下,这个是我的解决方案 -->
qq_鵬_4
还是显示不出,我还是用值栈吧
qq_愿有智慧_03738976
public String edit(){
Integer id =Integer.parseInt(org.apache.struts2.ServletActionContext.getRequest().getParameter("id"));
department = departmentService.findById(id);
return "editSuccess";
}
把获取id值得方法修改一下
丶刘易斯3520486
肯定是因为你就只查到一条数据,可能是你的数据库里只有一条数据,也可能是你的获取数据集合的逻辑有错
java家洼
%{}
是保证'{' 和 '}'之间的内容是OGNL表达式
如果这样写<s:textfield value="#model.dname"/>
你会发现输出的是#model.dname而不是你想要的值
因为value并不是默认执行OGNL表达式的,而是字符串
%{}是为了保证用OGNL的表达式去执行{}里面的字符串
提剑跨骑挥鬼雨
要在struts.xml配置文件中package加入strict-method-invocation="false"的属性,即<package name="ssh" extends="struts-default" namespace="/" strict-method-invocation="false"></package>。
提剑跨骑挥鬼雨
在数据库配置文件jdbc.properties中url添加characterEncoding参数,例如下面:
jdbc.url=jdbc:mysql://localhost:3306/ssh_employee?characterEncoding=utf8