对于struts的标签库运用的不是很熟练,希望各位赐教!

解决方案 »

  1.   

    你可能搞错了,对于struts,如果你不要.do访问的话,那只执行form中的reset函数,而不会执行action中的方法。所以你在action中设置是没用的。而你的taglib的应用是没错的。这样就能达到目标,只要确认jsp页面有这么一句:<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
      

  2.   

    初始化数据时我已经在.do中实例化form了!在struts-config.xml的<action>……</action>中我也放入了 name="form",我的意思是不是还有什么设置没有做到!这几天我看了很多关于struts得介绍,但就是没找到有关form初始化的咯!所以,希望各位同仁能给于帮助!
      

  3.   

    struts1.0不能实现以下功能,struts1.1可以,以下是例子:
    Action Class:
    package test;import org.apache.struts.action.*;
    import javax.servlet.http.*;public class TestAction extends Action {
      public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) {
        TestForm testForm=(TestForm)form;
        String userName=testForm.getUserName();
        req.setAttribute("userName",userName);
        return mapping.findForward("Test");
      }
    }
    //////////////
    Action Form:
    package test;import org.apache.struts.action.*;
    import javax.servlet.http.*;public class TestForm extends ActionForm {  private String userName;
      public String getUserName(){
        return userName;
      }
      public void setUserName(String userName){
        this.userName=userName;
      }
      public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
        return null;
      }
      public void reset(ActionMapping mapping, HttpServletRequest req) {
      }
    }
    /////////////////
    Test.jsp
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ page contentType="text/html; charset=windows-1252" %><html:html>
    <head>
    <title>
    Test
    </title>
    </head>
    <body>
    <p>
    <html:form action="/testAction.do" method="POST">
    <logic:present name="userName">
    <bean:write name="userName"/><br>
    </logic:present>
    userName:<html:text property="userName"/>
    <html:submit property="submit" value="Submit"/><html:reset value ="Reset"/>
    </html:form>
    </body>
    </html:html>//////////////
    struts-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
    <struts-config>
      <form-beans>
        <form-bean name="testForm" type="test.TestForm" />
      </form-beans>
      <global-forwards>
        <forward name="Test" path="/Test.jsp" />
      </global-forwards>
      <action-mappings>
        <action name="testForm" type="test.TestAction" input="/Test.jsp" scope="request" path="/testAction" />
      </action-mappings>
    </struts-config>
      

  4.   

    谢谢!
    我现在就是用struts1.0去实现的,实现的过程和仁兄是一样的咯!
    唯一不明白的就是:
    在jsp文件里用    <logic:present name="userName">
                     <bean:write name="userName"/>
    的意义是什么呢
      

  5.   

    <logic:present name="userName">是用来判断是否有userName存在,如果存在的话执行<bean:write name="userName"/>在页面中显示userName,如果不存在,这不执行
      

  6.   

    也就是说,只要用struts1.1就可以实现页面Form中控件值的初始化?
      

  7.   

    只要《HTML:FORM》里设置好正确的ACTION,然后对应的ACTION设置好正确的ACTIONFORM
    然后你在进入页面前在正确的SCOPE里初始化好对应的FORMBEAN就可以填充进去了
      

  8.   

    我在struts1.0和struts1.1试过,只有struts1.1可以.