Struts中<html:select>如何使用 100

现在在某个JSP中的request中有一个用户列表(userlist)请问我如何使用Struts中的<html:select>标签把他显示出来。标签显示用户名,值为用户的... 现在在某个JSP中的request中有一个用户列表(userlist)

请问我如何使用Struts中的<html:select>标签把他显示出来。标签显示用户名,值为用户的ID。这个用户是一个实体类,并没有相应的FormBean。我自己测试时老是提示如下错误:
javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean under name org.apache.struts.taglib.html.BEAN
展开
 我来答
iSuper01
2009-03-10 · TA获得超过154个赞
知道答主
回答量:202
采纳率:0%
帮助的人:64.1万
展开全部
说明一下,我的环境是xp的系统,myeclipse5.1的.然后就创建一个web工程.在web-inf目录下的lib目录中添加jar包,commons-logging-1.0.4,freemarker-2.3.8,ognl-2.6.11,struts2-core-2.0.11.1,xwork-2.0.4等,这些包是什么作用,我也不太清楚,我刚接触太不到一天,这个web.xml文件中配置的好象是一个过滤器.然后把web.xml文件内容配置成如下: <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
<!-- <init-param></init-param>-->
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>

然后创建action类,在struts2中不需要actionform类,并且struts2中的action也不需要继承一个特定的action类,但一般情况他都会继承这个类com.opensymphony.xwork2.ActionSupport,然后重写他的execute()方法,该方法返回一个字符串,学过jsf的朋友应该知道的,这和jsf有点相似,刚才说他不需要actionform,其实现在的action中定义属性即可,然后给他们getter和setter方法,LoginAction代码如下: package com.struts2;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport ...{

/** *//**
*
*/
private static final long serialVersionUID = 1L;

private String userName;

private String userPass;

public String getUserName() ...{
return userName;
}

public void setUserName(String userName) ...{
// org.apache.struts2.dispatcher.FilterDispatcher
this.userName = userName;
}

public String getUserPass() ...{
return userPass;
}

public void setUserPass(String userPass) ...{
this.userPass = userPass;
}

@Override
public String execute() throws Exception ...{
// TODO Auto-generated method stub
if ("zhangsan".equals(userName) && "lisi".equals(userPass)) ...{
ActionContext.getContext().getSession().put("user", getUserName());
return SUCCESS;
} else ...{
return INPUT;
}
}
}

接着就来配置这个action,这个文件的名字叫做struts.xml有点象struts1中的struts-config.xml文件.他的存放路径我现在只知道可以放在classes下,也就是src目录下,action中配置了action路径,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.enable.DynamicMethodInvocation"-->
<!-- value="false" />-->
<!-- <constant name="struts.devMode" value="false" />-->
<package name="struts2" extends="struts-default">
<action name="loginAction" class="com.struts2.LoginAction">
<result name="input">/login.jsp</result>
<result name="success">/suc.jsp</result>
</action>
<!-- <action name="....." class="....." method=".....">-->
<!--其中name可以随便起,这是以后自己要用到的,class就是类的全名,刚才说action不需要继承某个类,
也就是说他可以不遵循某中规范,可以在自定义的action中自定义处理方法-->
<!-- <result>........</result> 相当与actionforward-->
<!-- </action>-->
</package>
</struts>
编写jsp文件,很简单如代码: <%...@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%...@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>My JSP 'login.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<s:form action="loginAction">
<%...-- <form action="LoginAction.action" method="post">--%>
<s:textfield name="userName" label="用户名"></s:textfield>
<br>
<s:password name="userPass" label="密 码"></s:password>
<br>
<s:submit></s:submit>
<%...-- </form>--%>
</s:form>
<br>
</body>
</html>
suc.jsp文件如下: <%...@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:directive.page import="com.struts2.LoginAction" />
<%...@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'suc.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
${sessionScope.user },欢迎登陆。。。。。
<br>
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪箂
2009-03-11 · TA获得超过502个赞
知道小有建树答主
回答量:471
采纳率:57%
帮助的人:82.7万
展开全部
首先你的需求就不合理,用户的数量是多大,放到select里就会变的无限长,
谁给你做的需求分析,脑瓜进水啦.
<html:select id="userlist" name="userlist">
<option value='<bean:write name="userlist" property="userId"/>'>
<bean:write name="userlist" property="username" />
</option>
</html:select>就OK了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
储利玉2i
2009-03-11 · TA获得超过1157个赞
知道小有建树答主
回答量:954
采纳率:0%
帮助的人:483万
展开全部
<html:select>和<select>的用法大同小异,只要你能把userlist的数据显示在JSP页面,也就能把数据写到<select>中去,也就能把它放到<html:select>中。
大概示例:
<html:select name="userSelect">
<!-- 这里自己用循环读userlist的东西显示出来 -->
<html:option value="1">用户1</html:opiton>
<html:option value="2">用户2</html:opiton>
</html:select>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式