2018年2月4日 星期日

Struts 檢查 HTTP 方法 (Struts 四)

※ActionMapping、RequestProcessor

public class MyActionMapping extends ActionMapping {}
    
    
    
public class MyRequestProcessor extends RequestProcessor {
    @Override
    protected ActionMapping processMapping(HttpServletRequest req, HttpServletResponse res, String action)
            throws IOException {
        ActionMapping mapping = super.processMapping(req, res, action);
        if (mapping instanceof MyActionMapping) {
            if (!req.getMethod().equals("POST")) {
                mapping = null;
            }
        }
        return mapping;
    }
}

※mapping = null 網頁會變成空的,我使用 findForward 沒效

※struts-config

<form-beans>
    <form-bean name="ooo" type="controller.LoginActionForm">
        <form-property name="username" type="java.lang.String" />
        <form-property name="password" type="java.lang.String" />
    </form-bean>
</form-beans>
    
<action-mappings>
    <action path="/xxx" type="controller.LoginAction" name="ooo"
        scope="request" validate="true" input="/index.jsp" className="mapping.MyActionMapping">
        <forward name="success" path="/s.jsp" />
        <forward name="fail" path="/f.jsp" />
    </action>
</action-mappings>
    
<controller processorClass="listener.MyRequestProcessor"
contentType="text/html" nocache="true" locale="false" />

※增加 controller 標籤,和在 action 標籤增加 className 屬性


沒有留言:

張貼留言