Struts 2 In Action読書ノート1---------簡単なフォーム検証と属性注入
フォームの提出時には、ユーザー名やパスワードが空の場合に検証が必要になることがよくあります.JavaScriptの場合もありますが、もちろん排除しません.
Struts 2を使用します.実際、Struts 2は非常に強力なフォーム検証機能を提供しています.次に、最も簡単なフォーム検証を説明します.
同様に、Struts 2では、フォームがコミットした値をparamsブロッカーによって対応するBeanのプロパティに動的に格納します.
Beanを構築しstruts 2にインスタンス化させ、必要なBeanのプロパティを自動的に注入することで、非常に削減できます.
多くのコード量.
まずはActionコード
ここではActionSupportクラスを継承し、検証の方法を便利に使用するためにstruts.xml
そして入力画面
ここで注意しなければならないのは、そのname=「user.username」です.このuserはそのuserを指し、このクラスを自動的にインスタンス化することができます.
この属性を注入しました.
最後にインタフェースを表示し、同じ方法で、
やはりStrutsは強いということが明らかに感じられます.
Struts 2を使用します.実際、Struts 2は非常に強力なフォーム検証機能を提供しています.次に、最も簡単なフォーム検証を説明します.
同様に、Struts 2では、フォームがコミットした値をparamsブロッカーによって対応するBeanのプロパティに動的に格納します.
Beanを構築しstruts 2にインスタンス化させ、必要なBeanのプロパティを自動的に注入することで、非常に削減できます.
多くのコード量.
まずはActionコード
package com.bird.chapterTwo;
import com.bird.chapterTwo.bean.User;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport{
private static final long serialVersionUID = 1L;
private static final String GREETING = "Hello";
@Override
public void validate() {
if(getUser().getUsername().length()==0){
addFieldError("user.username", getText(" "));
}
if(getUser().getPassword().length()==0){
addFieldError("user.password", getText(" "));
}
}
@Override
public String execute() throws Exception {
user.setUsername(user.getUsername()+GREETING);
return SUCCESS;
}
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
ここではActionSupportクラスを継承し、検証の方法を便利に使用するためにstruts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<constant name="struts.devMode" value="false" />
<package name="chapterTwo" namespace="/chapterTwo" extends="struts-default">
<action name="Name">
<result>/NameCollector.jsp</result>
</action>
<action name="HelloWorld" class="com.bird.chapterTwo.HelloWorld">
<result name="success">/chapterTwo/HelloWorld.jsp</result>
<result name="input">/NameCollector.jsp</result>
</action>
</package>
</struts>
必ずそのname=「input」に注意してください.これはフォーム検証に失敗したときに転向したページです.ここでは入力インタフェースに転向させました.そして入力画面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Name Collector</title>
</head>
<body>
<h4>Enter Your Name</h4>
<s:form action="HelloWorld">
<s:textfield name="user.username" label="Your Name"></s:textfield>
<s:textfield name="user.password" label="Your Password"></s:textfield>
<s:submit/>
</s:form>
</body>
</html>
ここで注意しなければならないのは、そのname=「user.username」です.このuserはそのuserを指し、このクラスを自動的にインスタンス化することができます.
この属性を注入しました.
最後にインタフェースを表示し、同じ方法で、
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>HelloWorld</title>
</head>
<body>
<h3>Custom Greeting page</h3>
<h4><s:property value="user.username"></s:property></h4>
</body>
</html>
やはりStrutsは強いということが明らかに感じられます.