解决方案 »
- 急,怎样能实现把本地的文件通过web上传到Oracle的Blob中去?
- spring 和Struct结合问题
- 急!!求救????,如何只用一条sql语句实现??/
- jsp中session问题
- 急,无法弹出Jjava脚本,请高手帮帮忙
- 使用frame时,怎样可以通过一个frame中网页的超链接控制另一个frame中显示的网页?
- 求一个简单的jsp+javabean的网站系统
- 想自己做一个blog,用什么技术实现最好?
- 留言本中怎样让留言分段
- WebLogic: 一个被配置在Startup启动的class,启动后,实例如何才能被 JSP 或 其他的bean类找到?
- 页面点击左边右边内容改变怎么弄啊 求大神指教
- spring mvc中,为何jsp没有被执行,而是被当做html直接返回了
<result name="add">/pages/addPerson.jsp</result>
<result name="success">/pages/success.jsp</result>
</action>
这块应该加上method属性,
<action name="person" class="com.bonc.action.PersonAction" method="add" >
<result name="add">/pages/addPerson.jsp</result>
<result name="success">/pages/success.jsp</result>
</action>
<action name="person" class="com.bonc.action.PersonAction">
请问namespace="" 意味着什么?个人觉得可能是这里出了问题
import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;
import org.omg.CORBA.Request;import com.bonc.bean.Person;
import com.bonc.service.IPersonService;
import com.bonc.util.PersonUtil;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;public class PersonAction extends ActionSupport {
private IPersonService<Person> personService;
private Person person;
private String passWdConfirm;
/**
* 用户注册
* @return
*/
public String initAdd(){
return "add";
}
public String add(){
HttpServletRequest req = ServletActionContext.getRequest();
HttpServletResponse resp = ServletActionContext.getResponse();
person.setIpCreated(req.getRemoteAddr());
person.setIpLastActived(req.getRemoteAddr());
person.setDateCreated(new Date());
person.setDateLaseActived(new Date());
if(person.getAccount()==null||person.getAccount().trim().length()==0){
req.setAttribute("message", "请输入账号");
return "add";
}
if(person.getPassword()==null||person.getPassword().trim().length()==0
||!person.getPassword().equals(passWdConfirm)){
req.setAttribute("message", "密码不一致");
return "add";
}
try{
personService.create(person);
PersonUtil.setPersonInfo(req, resp, person);
return Action.SUCCESS;
} catch(Exception e) {
req.setAttribute("message", "注册失败,原因:"+e.getMessage());
return "add";
}
}
public IPersonService<Person> getPersonService() {
return personService;
} public void setPersonService(IPersonService<Person> personService) {
this.personService = personService;
} public Person getPerson() {
return person;
} public void setPerson(Person person) {
this.person = person;
} public String getPassWdConfirm() {
return passWdConfirm;
} public void setPassWdConfirm(String passWdConfirm) {
this.passWdConfirm = passWdConfirm;
}
}
jsp页面最好放在WEB-INF下面
你页面写的add.action对应的是这里面的name属性,
<action name="add" class="com.bonc.action.PersonAction" method="add" >
<result name="add">/pages/addPerson.jsp</result>
<result name="success">/pages/success.jsp</result>
</action>
关于你说的namespace是指命名空间,你可以指定他去哪个空间找这个action的方法,
比如:<package name="person" namespace="person" extends="struts-default">你这里设置成person
只要你在页面 <s:form id="add" action="person!add.action" method="post" namespace="/person">指定一下就行
你页面写的add.action对应的是这里面的name属性,
<action name="add" class="com.bonc.action.PersonAction" method="add" >
<result name="add">/pages/addPerson.jsp</result>
<result name="success">/pages/success.jsp</result>
</action>
关于你说的namespace是指命名空间,你可以指定他去哪个空间找这个action的方法,
比如:<package name="person" namespace="person" extends="struts-default">你这里设置成person
只要你在页面 <s:form id="add" action="person!add.action" method="post" namespace="/person">指定一下就行
不行的话,你这样写: <s:form id="add" action="add.action" method="post" namespace="/person">
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,/WEB-INF/classes/struts.xml</param-value>
</init-param> 去掉这段,原因现在还不太明白