再有,测试时多次提交,提示 ××必须填写 。这些提示信息总是累加显示。如:一次提交:
username is required!
password is required! 二次提交:
username is required!
username is required!
password is required!
password is required! 有一遍就够了。请高手解答,不胜感激。
username is required!
password is required! 二次提交:
username is required!
username is required!
password is required!
password is required! 有一遍就够了。请高手解答,不胜感激。
解决方案 »
- el表达式的问题
- fckeditor的一个问题
- 询问下这个东西的思路
- 急,急,急!!用struts+spring+hibernate做了一个登录功能老遇到一个错误 希望高手能帮我解决一下 谢谢!!!
- MicrosoftAjax 1.0 beta是否存在内存泄露
- 还是关于分页显示图片并排的问题,100分得给。alt+f4也过来帮忙看看
- substring问题!!!!!!!!!在线等待
- 用jsp对oracle的clob字段进行操作(快成功了,再指点一下)
- TOMCAT虚拟目录问题
- 关于在jsp中调用java类的问题
- the selection did not contain anything that can be run on a server
- 标签问题
<result name="success" type="tiles">ssh.main.ftl</result>
<result name="find" type="tiles">ssh.find.ftl</result>
<result name="input" type="tiles">ssh.main.ftl</result>
</action>
<!--只需验证add方法,userAction映射到spring,ssh.main.ftl映射到 tiles, 页面用freeer显示-->
<action name="user_add" method="add" class="userAction">
<result name="success" type="tiles">ssh.main.ftl</result>
<result name="input" type="tiles">ssh.main.ftl</result>
</action>tiles。xml文件<tiles-definitions> <definition name="ssh.main.jsp" template="/main.jsp">
<put-attribute name="someAttribute" value="some.value" />
<put-attribute name="title" value="user infomation"/>
<put-attribute name="header" value="/header.jsp"/>
<put-attribute name="menu" value="/menu.jsp" />
<put-attribute name="footer" value="/footer.jsp" />
<put-attribute name="body" value="/body.jsp" />
</definition>
<definition name="ssh.main.ftl" template="/main.ftl">
<put-attribute name="someAttribute" value="some.value" />
<put-attribute name="title" value="user infomation"/>
<put-attribute name="header" value="/header.ftl" />
<put-attribute name="menu" value="/menu.ftl" />
<put-attribute name="footer" value="/footer.ftl" />
<put-attribute name="body" value="/body.ftl" />
</definition>
<definition name="ssh.find.ftl" template="/userSearch.ftl">
<put-attribute name="header" value="/userSearchHeader.ftl" />
<put-attribute name="body" value="/userSearchBody.ftl" />
<put-attribute name="foo" value="/footer.ftl" />
</definition></tiles-definitions> UserAction-add-validation.xml文件
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="user.username">
<field-validator type="requiredstring" short-circuit="true">
<message>username is required!</message>
</field-validator>
</field>
<field name="user.password">
<field-validator type="requiredstring" short-circuit="true">
<message>password is required!</message>
</field-validator>
</field>
</validators>
import org.apache.log4j.Logger;
import org.apache.struts2.interceptor.validation.SkipValidation;import cn.com.ctdos.domain.User;
import cn.com.ctdos.domain.helper.UserHelper;
import cn.com.ctdos.service.ServiceFacade;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
Logger log = Logger.getLogger(UserAction.class);
private static final String _SHORT_NAME_Of_POJO = "User";
private static final String _LONG_NAME_Of_POJO = "cn.com.ctdos.domain.User";
private static final String _FIND = "find";
ServiceFacade<User> serviceFacade = null;
List<User> liUser;
User user = null;
UserHelper userHelper;
@SkipValidation
public String index(){
find();
return SUCCESS;
}
@SkipValidation
public String indexFTL(){
find();
return "input";
}
@SkipValidation
public String findIndex(){
return _FIND;
}
//---------------------------------
//就是要调用它,别的我什么也没做。
public String add(){
log.info("add start");
serviceFacade.saveUser(user);
log.info("add end");
return find();
}
//---------------------------------
@SkipValidation
public String find(){
setLiUser(serviceFacade.findUser(_SHORT_NAME_Of_POJO));
return SUCCESS;
}
@SkipValidation
public String findUserByID(){
log.info("-------------> " + user.getId());
setUser(serviceFacade.findUserById(_LONG_NAME_Of_POJO, user.getId()));
return SUCCESS;
}
@SkipValidation
public String delete(){
// log.info(getId());
serviceFacade.delUser(user);
return find();
}
@SkipValidation
public String update(){
User userupdate = serviceFacade.findUserById(_LONG_NAME_Of_POJO, user.getId());
userupdate.setId(user.getId());
userupdate.setUsername(user.getUsername());
userupdate.setPassword(user.getPassword());
serviceFacade.updateUser(userupdate);
return find();
}
@SkipValidation
public String findByProperty(){
String queryCondition = userHelper.getQueryCondition();
String queryString = "from " + _SHORT_NAME_Of_POJO
+ " where username like '%"+queryCondition+"%'";
setLiUser(serviceFacade.findByProperty(queryString));
return _FIND;
}
public ServiceFacade<User> getServiceFacade() {
return serviceFacade;
} public void setServiceFacade(ServiceFacade<User> serviceFacade) {
this.serviceFacade = serviceFacade;
} public List<User> getLiUser() {
return liUser;
} public void setLiUser(List<User> liUser) {
this.liUser = liUser;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public UserHelper getUserHelper() {
return userHelper;
} public void setUserHelper(UserHelper userHelper) {
this.userHelper = userHelper;
}
}ftl 里获得error
<@s.fielderror/>
在那里看看有无能回答你的,谢谢,LZ,甭忘了给俺分哦,谢谢LZ
ActionForm所以得不到!
要不你追一下,看看在哪产生的问题
很可能是jar冲突,但人仔细查检了。
哎,期待!!!com.opensymphony.xwork2.validator.ActionValidatorManagerFactory - <Detected AnnotationActionValidatorManager, initializing it...>其中有这么一句话。咋回事呢?
和后台没有关系
<constant name="struts.objectFactory" value="spring" /><action name="UserAction_userAdd" method="add" class="userAction"> 换成这个<action name="UserAction_userAdd" method="add" class="cn.com.ctdos.web.action.UserAction">就没问题了,原因正在查找中,为什么.憋了我好长时间
要加上他scope="prototype" ,我记得默认不是单实例啊谢了,爱