在服务端新建公告的时候,也把要显示的座位ID号存在一个字符串中
如:String Seatshow="2001,2002,2003";说明只有这3个座位登录客户端的时候才能看到新公告action:
System.out.println("当前座位是="+getSessionSeat().getSeatExt());
messageP = this.messageService.queryPageList(param, getSessionSeat().getUserId(), pageSize, page);
List<MessageBean> meslist = messageP.getList();
for (MessageBean bean : meslist) {
String[] newseatshow=bean.getSeatshow().split(",");
for (String string : newseatshow) {
//判断如果当前登录的座位ID号跟Seatshow的号码一样时才显示
if(this.getSessionSeat().getSeatExt().equals(string)){
System.out.println(bean.getId()+" : "+string);
}else{
System.out.println(bean.getId()+" : "+"不显示新公告");
}
}
}想请教下高手 怎么做才能实现如果当前登录的座位ID号不在Seatshow里,就不显示新建公告
如:String Seatshow="2001,2002,2003";说明只有这3个座位登录客户端的时候才能看到新公告action:
System.out.println("当前座位是="+getSessionSeat().getSeatExt());
messageP = this.messageService.queryPageList(param, getSessionSeat().getUserId(), pageSize, page);
List<MessageBean> meslist = messageP.getList();
for (MessageBean bean : meslist) {
String[] newseatshow=bean.getSeatshow().split(",");
for (String string : newseatshow) {
//判断如果当前登录的座位ID号跟Seatshow的号码一样时才显示
if(this.getSessionSeat().getSeatExt().equals(string)){
System.out.println(bean.getId()+" : "+string);
}else{
System.out.println(bean.getId()+" : "+"不显示新公告");
}
}
}想请教下高手 怎么做才能实现如果当前登录的座位ID号不在Seatshow里,就不显示新建公告
应该是全部检查完了才能确定当前登录ID在不在Seatshow里面
既然是不显示,就是不做操作呗。for (String string : newseatshow) {
//判断如果当前登录的座位ID号跟Seatshow的号码一样时才显示
if(this.getSessionSeat().getSeatExt().equals(string)){
System.out.println(bean.getId()+" : "+string);
break;
}
}
这样可以吧?
//或者用迭代器i,if则break,在循环外面判断,如果i < newseatshow.length(),说明找到了,就是if,否则就是else
两层for循环了,break也不好使,应该直接returnfor (MessageBean bean : meslist) {
String[] newseatshow=bean.getSeatshow().split(",");
for (String string : newseatshow) {
//判断如果当前登录的座位ID号跟Seatshow的号码一样时才显示
if(this.getSessionSeat().getSeatExt().equals(string)){
System.out.println(bean.getId()+" : "+string);
// TODO 显示公告栏的操作
return;
}}
}
{
String[] newseatshow=bean.getSeatshow().split(",");
String currentSeatID = this.getSessionSeat().getSeatExt();
boolean isInSeatShow = false;
for (String string : newseatshow)
{
//判断如果当前登录的座位ID号跟Seatshow的号码一样时才显示
if(this.getSessionSeat().getSeatExt().equals(string))
{
System.out.println(bean.getId()+" : "+string);
isInSeatShow = true;
break;
}
}
if(isInSeatShow)
{
//在这里显示公告
}
}
在客户端的时候
<c:forEach var="s" items="${message.messageP.list}" varStatus="i" >
messageP遍历循环出来的
现在就是想判断if(this.getSessionSeat().getSeatExt().equals(string)==false){
就把messageP.list对应的messagebean移除掉,这样在客户端遍历messageP的时候就看不到了,不知道这样的思路对不对?
我break的目的是跳出当前循环,然后比较。
如果跳了2重,或者直接return,那岂不是只判断了第一个messagebean?
for (String string : newseatshow) {
//判断如果当前登录的座位ID号跟Seatshow的号码一样时才显示
if(this.getSessionSeat().getSeatExt().equals(string)){
for (MessageBean bean : meslist) {
System.out.println(bean.getId()+" : "+string);
}
break;
}
}
在客户端的时候
<c:forEach var="s" items="${message.messageP.list}" varStatus="i" >
messageP遍历循环出来的
现在就是想判断if(this.getSessionSeat().getSeatExt().equals(string)==false){
就把messageP.list对应的messagebean移除掉,这样在客户端遍历messageP的时候就看不到了,不知道这样的思路对不对?
你应该保证对于newseatshow里面的每个string,this.getSessionSeat().getSeatExt().equals(string)都是false,才能说明当前id不在newseatshow里。
你再把你的问题描述清楚一点。
尤其messageP.list。如果id不在newseatshow里面,就把messageP.list里面对应的移除。怎么对应的?还是都移除?
如:String Seatshow="2001,2002,2003";说明只有这3个座位登录客户端的时候才能看到新公告action中:
System.out.println("当前座位是="+getSessionSeat().getSeatExt());
messageP = this.messageService.queryPageList(param, getSessionSeat().getUserId(), pageSize, page);List<MessageBean> meslist = messageP.getList();for (MessageBean bean : meslist) {
String[] newseatshow=bean.getSeatshow().split(",");
for (String string : newseatshow) {
//判断如果当前登录的座位ID号跟Seatshow的号码一样时才显示
if(this.getSessionSeat().getSeatExt().equals(string)){
System.out.println(bean.getId()+" : "+string);}else{
//这里就是要怎么对messageP.list中不等于Seatshow中的号码不显示出来
//比如 我新建了一条公告 id=10,Seatshow="2001,2002,2003".
//这时候有2个用户登录客户端1个userid=2001,1个是2004;
//然后只有2001的用户才能看到这条id为10的公告 2004的看不到
System.out.println(bean.getId()+" : "+"不显示新公告");}}
}
客户端的jsp页面中:
在客户端的时候
<c:forEach var="s" items="${message.messageP.list}" varStatus="i" >
messageP遍历循环出来的想请教下高手 怎么做才能实现如果当前登录的座位ID号不在Seatshow里,就不显示新建公告
private IPaging<MessageBean> messageP;
private IPaging<MessageBean> messageN;//用来存放筛选的结果System.out.println("当前坐席是="+getSessionSeat().getSeatExt());
messageP = this.messageService.queryPageList(param, getSessionSeat().getUserId(), pageSize, page);
List<MessageBean> meslist = messageP.getList();
List<MessageBean> newlist=new ArrayList<MessageBean>();
for (MessageBean bean : meslist) {
String[] newseatshow=bean.getSeatshow().split(",");
for (String string : newseatshow) {
if(this.getSessionSeat().getSeatExt().equals(string)){
newlist.add(bean);
//把相等的bean放进一个新的list里 然后再存在messageN中,在客户端的时候遍历 messageN?这个思路行不行?
break;
}
}
}
try {
this.messageN.setList(newlist);
} catch (Exception e) {
e.printStackTrace();
}
return StrutsEnv.getActionMapping().findForward(SUCCESS);